[]
        
(Showing Draft Content)

支持表单背景图片

GcExcel支持将工作表导出为PDF文件时可以包含的工作表背景图像。这对于在PDF文档中显示公司徽标和水印非常有用。

渲染背景图片

在工作表中,可以使用IWorksheet接口的setBackgroundPicture方法 设置背景图像 。

GcExcel在PdfSaveOptions类中提供了setPrintBackgroundPicture方法,以在将工作表导出为PDF文件时在页面中心呈现背景图像。


请参考以下示例代码,以在导出到PDF文档时包括工作表背景图像。

Workbook workbook = new Workbook();
// Fetch default worksheet
IWorksheet worksheet = workbook.getWorksheets().get(0);
worksheet.getRange("A1").setValue("GrapeCity Documents for Excel");
worksheet.getRange("A1").getFont().setSize(25);

// Load an image from a specific file in input stream
InputStream inputStream = ClassLoader.getSystemResourceAsStream("grapecity.png");
try {
    byte[] bytes = new byte[inputStream.available()];
    // Read an image from input stream
    inputStream.read(bytes, 0, bytes.length);

    // Add background image of the worksheet
    worksheet.setBackgroundPicture(bytes);
} catch (IOException ioe) {
    ioe.printStackTrace();
}

PdfSaveOptions pdfSaveOptions = new PdfSaveOptions();
// Print the background picture in the centre of exported pdf file
pdfSaveOptions.setPrintBackgroundPicture(true);

// Saving workbook to pdf
workbook.save("12-PrintBackgroundPicture.pdf", pdfSaveOptions);

渲染多个背景图片

可以使用IWorksheet界面的getBackgroundPictures 方法在GcExcel中渲染多个背景图像。在将工作表导出为PDF文档时,可以包含这些图像。PDF中的背景图像是基于网格线绘制的,并且可以通过指定目标矩形的坐标来定位在文档中的任何位置。


此外,还可以应用图像透明度,边框,角半径和其他格式设置选项。对于设置拐角半径,最小值为0,最大值为目标矩形的高度或宽度(以较小者为准)除以2。该ImageLayout枚举可用于指定图像应该放置填写PDF目标矩形的方式。


GcExcel还通过使用ToJSON方法支持背景图像的JSON导出。但是,将图像导出到Excel后将被丢弃。


请参考以下示例代码,以在导出到PDF文档时包括多个背景图片。

Workbook workbook = new Workbook();
IWorksheet worksheet = workbook.getWorksheets().get(0);
            
//Add a background picture in the worksheet
IBackgroundPicture picture1 = worksheet.getBackgroundPictures().addPictureInPixel("image.png", 10, 10, 250, 150);
IBackgroundPicture picture2 = worksheet.getBackgroundPictures().addPictureInPixel("ConvertShapeToImage.png", 180, 10, 150, 100);

//Set the border style of the destination rectangle.
picture1.getLine().getColor().setRGB(Color.GetRed());
picture1.getLine().setWeight(1);

//The background picture will be resized to fill the destination dimensions.The aspect ratio is not preserved.
picture1.setBackgroundImageLayout(ImageLayout.Tile);

//Sets the rounded corner of the destination rectangle.
picture1.setCornerRadius(50);
//Sets the transparency of the background picture.
picture1.setTransparency(0.5);
picture2.setTransparency(0.5);

//Save to PDF file
workbook.save("ExportBackgroundImageToPDF.pdf");

局限性

GcExcel在导出为JSON时会使用从第一个工作表找到的第一个背景图像到最后一个工作表。

有关将背景图像添加到工作表的更多信息,请参见自定义工作表 主题