本文整理汇总了Java中org.apache.pdfbox.pdmodel.interactive.documentnavigation.outline.PDOutlineItem.setDestination方法的典型用法代码示例。如果您正苦于以下问题:Java PDOutlineItem.setDestination方法的具体用法?Java PDOutlineItem.setDestination怎么用?Java PDOutlineItem.setDestination使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类org.apache.pdfbox.pdmodel.interactive.documentnavigation.outline.PDOutlineItem
的用法示例。
在下文中一共展示了PDOutlineItem.setDestination方法的3个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Java代码示例。
示例1: addOutlines
import org.apache.pdfbox.pdmodel.interactive.documentnavigation.outline.PDOutlineItem; //导入方法依赖的package包/类
private void addOutlines(Iterable<PDOutlineItem> itemCollection, PDOutlineItem rootItem,
PDDocument inDoc) throws IOException {
for (PDOutlineItem item : itemCollection) {
PDPage destPage = null;
destPage = item.findDestinationPage(inDoc);
PDOutlineItem outItem = new PDOutlineItem();
if (destPage != null) {
PDPage itemDestPage =
outDocument.getPages().get(inDoc.getPages().indexOf(destPage) + outPagesN);
outItem.setDestination(itemDestPage);
}
outItem.setTitle(item.getTitle());
rootItem.addLast(outItem);
if (item.hasChildren())
addOutlines(item.children(), outItem, inDoc);
}
}
示例2: appendDoc
import org.apache.pdfbox.pdmodel.interactive.documentnavigation.outline.PDOutlineItem; //导入方法依赖的package包/类
private void appendDoc(final File inFile) throws IOException {
try {
inDocuments.push(PDDocument.load(inFile));
} catch (IOException e) {
throw new IOException("File \"" + inFile.getAbsolutePath() + "\" seems to be non-pdf");
}
PDDocument inDoc = inDocuments.peek();
int inPagesN = inDoc.getNumberOfPages();
if (inPagesN < 1)
return;
String finname = inFile.getName();
if (finname.length() > 4)
finname = finname.substring(0,finname.length()-4);
PDDocumentOutline inOutline = inDoc.getDocumentCatalog().getDocumentOutline();
for (int i=0; i<inPagesN; ++i)
outDocument.addPage(inDoc.getPage(i));
PDOutlineItem outRoot = new PDOutlineItem();
outRoot.setTitle(finname);
outRoot.setDestination(outDocument.getPages().get(outPagesN));
outOutline.addLast(outRoot);
if (inOutline != null)
addOutlines(inOutline.children(), outRoot, inDoc);
outPagesN += inPagesN;
}
示例3: addBookmarks
import org.apache.pdfbox.pdmodel.interactive.documentnavigation.outline.PDOutlineItem; //导入方法依赖的package包/类
@Override
public void addBookmarks(final String inputUri, final String outputUri, final String title,
final List<PDFGalBookmark> pdfGalBookmarksList) throws IOException, COSVisitorException {
if (StringUtils.isNotBlank(inputUri) && StringUtils.isNotBlank(outputUri)
&& StringUtils.isNotEmpty(title) && CollectionUtils.isNotEmpty(pdfGalBookmarksList)) {
final PDDocument doc = PDDocument.load(inputUri);
final PDDocumentOutline outline = new PDDocumentOutline();
doc.getDocumentCatalog().setDocumentOutline(outline);
final PDOutlineItem pagesOutline = new PDOutlineItem();
pagesOutline.setTitle(title);
@SuppressWarnings("unchecked")
final List<PDPage> pages = doc.getDocumentCatalog().getAllPages();
outline.appendChild(pagesOutline);
for (final PDFGalBookmark pdfGalBookmark : pdfGalBookmarksList) {
if (pdfGalBookmark != null && pdfGalBookmark.isInitializated()) {
final PDPage page = pages.get(pdfGalBookmark.getPage() - 1);
final PDPageFitWidthDestination dest = new PDPageFitWidthDestination();
dest.setPage(page);
final PDOutlineItem bookmark = new PDOutlineItem();
bookmark.setDestination(dest);
bookmark.setTitle(pdfGalBookmark.getText());
pagesOutline.appendChild(bookmark);
}
}
pagesOutline.openNode();
outline.openNode();
doc.save(outputUri);
doc.close();
} else {
throw new IllegalArgumentException(Constants.ILLEGAL_ARGUMENT_EXCEPTION_MESSAGE);
}
}