您好,我正在使用Aspose.PDF for java 20.10 向PDF文件的指定位置插入图片,但是我遇到了一些问题。
首先,这个PDF文件是我用Aspose.cell for java 20.6 转换得到的,下面是Excel转PDF的代码。
byte[] pdfByte;
InputStream is = new ByteArrayInputStream(excelByte);
Workbook wb = new Workbook(is);
PdfSaveOptions pdfSaveOptions = new PdfSaveOptions();
pdfSaveOptions.setAllColumnsInOnePagePerSheet(true);
pdfSaveOptions.setOnePagePerSheet(true);
ByteArrayOutputStream outputStream = new ByteArrayOutputStream();
wb.save(outputStream, pdfSaveOptions);
pdfByte = outputStream.toByteArray();
return pdfByte;
得到PDF文件之后,我使用了下面的代码将图片插入到了指定的位置:
@Test
public void insertImage() throws IOException {
// Open a document ,test_bak.pdf就是我上面转换得到的PDF
Document pdfDocument1 = new Document("D://test_bak.pdf");
// Set coordinates
int width = 100;
int height = 100;
int xIndent = 129;
int yIndent = 56;
// Get the page you want to add the image to
Page page = pdfDocument1.getPages().get_Item(1);
// Load image into stream
java.io.FileInputStream imageStream = new java.io.FileInputStream(new java.io.File("D://签章.png"));
// Add an image to the Images collection of the page resources
page.getResources().getImages().add(imageStream);
// Using the GSave operator: this operator saves current graphics state
page.getContents().add(new GSave());
// Create Rectangle and Matrix objects
// Rectangle rectangle = new Rectangle(lowerLeftX, lowerLeftY, upperRightX, upperRightY);
Matrix matrix = new Matrix(new double[] {width, 0, 0, height, xIndent, yIndent});
// Using ConcatenateMatrix (concatenate matrix) operator: defines how
// image must be placed
page.getContents().add(new ConcatenateMatrix(matrix));
XImage ximage = page.getResources().getImages().get_Item(page.getResources().getImages().size());
// Using Do operator: this operator draws image
page.getContents().add(new Do(ximage.getName()));
// Using GRestore operator: this operator restores graphics state
page.getContents().add(new GRestore());
// Save the new PDF
pdfDocument1.save("D://guanfang.pdf");
// Close image stream
imageStream.close();
}
但是当我插入完成,查看本地生成的PDF后发现了一些问题,插入的图片上下翻转了,而且Y轴的坐标也不正确。另外我尝试了通过Office软件打开Excel时另存为PDF文件,此时用这个PDF文件插入图片的表现是正常的。
附件为效果图。image.pdf (116.2 KB)
下面的附件为要插入的图片和原PDF文件
签章.jpg (5.7 KB)
temp1.pdf (62.3 KB)