我将程序的某些部分从itext5切换到itext 7。 如何将其他人的页面pdf导入单个页面?
void merge(PdfDocument reader, PdfDocumentContentParser parser, int page) throws IOException {
PdfImportedPage importedPage = writer.getImportedPage(reader, page);
PdfContentByte directContent = writer.getDirectContent();
PageVerticalAnalyzer finder = parser.processContent(page, new PageVerticalAnalyzer());
if (finder.verticalFlips.size() < 2) {
return;
}
Rectangle pageSizeToImport = reader.GetPageSize(page);
int startFlip = finder.verticalFlips.size() - 1;
boolean first = true;
while (startFlip > 0) {
if (!first) {
newPage();
}
float freeSpace = yPosition - pageSize.getBottom();
int endFlip = startFlip + 1;
while ((endFlip > 1) && (finder.verticalFlips.get(startFlip) - finder.verticalFlips.get(endFlip - 2) < freeSpace)) {
endFlip -= 2;
}
if (endFlip < startFlip) {
float height = finder.verticalFlips.get(startFlip) - finder.verticalFlips.get(endFlip);
directContent.saveState();
directContent.rectangle(0, yPosition - height, pageSizeToImport.getWidth(), height);
directContent.clip();
directContent.newPath();
directContent.addTemplate(importedPage, 0, yPosition - (finder.verticalFlips.get(startFlip) - pageSizeToImport.getBottom()));
directContent.restoreState();
yPosition -= height + gap;
startFlip = endFlip - 1;
} else if (!first) {
throw new IllegalArgumentException(String.format("Page %s content sections too large.", page));
}
first = false;
}
}
我一直在网上搜索,阅读了针对itext7的api,但仍然无法将其转为使其正常工作。无法找到PdfImportedPage和PdfContentByte的替代品。
我已经列出了我的代码,我的主要问题是用什么代替PdfImportedPage和PdfContentByte