当前位置: 首页>>代码示例>>Java>>正文


Java PDOutlineItem.setDestination方法代码示例

本文整理汇总了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);
	}
}
 
开发者ID:Yanpas,项目名称:PdfMerger,代码行数:19,代码来源:Merger.java

示例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;
}
 
开发者ID:Yanpas,项目名称:PdfMerger,代码行数:30,代码来源:Merger.java

示例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);
	}
}
 
开发者ID:alexpernas,项目名称:PDFGal,代码行数:39,代码来源:PDFGalImpl.java


注:本文中的org.apache.pdfbox.pdmodel.interactive.documentnavigation.outline.PDOutlineItem.setDestination方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。