[]
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时会使用从第一个工作表找到的第一个背景图像到最后一个工作表。
有关将背景图像添加到工作表的更多信息,请参见自定义工作表 主题