本文整理汇总了Java中org.apache.pdfbox.multipdf.PDFMergerUtility类的典型用法代码示例。如果您正苦于以下问题:Java PDFMergerUtility类的具体用法?Java PDFMergerUtility怎么用?Java PDFMergerUtility使用的例子?那么恭喜您, 这里精选的类代码示例或许可以为您提供帮助。
PDFMergerUtility类属于org.apache.pdfbox.multipdf包,在下文中一共展示了PDFMergerUtility类的9个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于我们的系统推荐出更棒的Java代码示例。
示例1: addCoverpage
import org.apache.pdfbox.multipdf.PDFMergerUtility; //导入依赖的package包/类
private void addCoverpage() throws IOException {
float leading = 1.5f * FONT_SIZE_TITLE;
PDDocument document = new PDDocument();
PDPage page = new PDPage();
document.addPage(page);
FONT_STYLE_COVER = PDTrueTypeFont.loadTTF(document, MainApp.class.getResourceAsStream(FONT_MERRIWEATHER_BOLD));
PDPageContentStream contentStream = new PDPageContentStream(document, page);
contentStream.setNonStrokingColor(25, 81, 107);
contentStream.fillRect(0, 0, page.getMediaBox().getWidth(), (page.getMediaBox().getHeight() / 2) - 10);
contentStream.fillRect(0, (page.getMediaBox().getHeight() / 2) + 10, page.getMediaBox().getWidth(), (page.getMediaBox().getHeight() / 2) - 10);
contentStream.setNonStrokingColor(248, 173, 50);
contentStream.fillRect(0, (page.getMediaBox().getHeight() / 2) - 10, page.getMediaBox().getWidth(), 20);
contentStream.beginText();
contentStream.setNonStrokingColor(Color.WHITE);
contentStream.setFont(FONT_STYLE_COVER, FONT_SIZE_AUTHOR);
contentStream.newLineAtOffset(20, 20);
contentStream.showText(authorContent);
contentStream.setFont(FONT_STYLE_COVER, FONT_SIZE_TITLE);
contentStream.newLineAtOffset((page.getMediaBox().getWidth() / 2) - 20, 600);
List<String> lines = wrapText((page.getMediaBox().getWidth() / 2) - 20);
for (String line : lines) {
contentStream.showText(line);
contentStream.newLineAtOffset(0, -leading);
}
contentStream.endText();
contentStream.close();
File temp = File.createTempFile("coverpage-zds", ".pdf");
document.save(temp);
document.close();
PDFMergerUtility mergerUtility = new PDFMergerUtility();
mergerUtility.addSource(temp);
mergerUtility.addSource(destPdfPath);
mergerUtility.setDestinationFileName(destPdfPath);
mergerUtility.mergeDocuments();
}
开发者ID:firm1,项目名称:zest-writer,代码行数:39,代码来源:PdfUtilExport.java
示例2: testMergeGovernmentForms
import org.apache.pdfbox.multipdf.PDFMergerUtility; //导入依赖的package包/类
/**
* <a href="https://stackoverflow.com/questions/47140209/pdfbox-files-are-sharing-common-cosstream-after-flatten">
* PDFBox files are sharing common COSStream after flatten
* </a>
* <br/>
* <a href="https://studentloans.gov/myDirectLoan/downloadForm.action?searchType=library&shortName=general&localeCode=en-us">
* GeneralForbearance.pdf
* </a>
* <p>
* Indeed, flattening, merging, and early closing of source documents
* do not mingle well.
* </p>
*/
@Test
public void testMergeGovernmentForms() throws IOException {
try ( InputStream resource1 = getClass().getResourceAsStream("GeneralForbearance.pdf");
InputStream resource2 = getClass().getResourceAsStream("GeneralForbearance.pdf")) {
PDDocument destination = PDDocument.load(resource1);
PDDocument source = PDDocument.load(resource2);
source.getDocumentCatalog().getAcroForm().flatten(); //comment out just this line and the destination.save will pass
PDFMergerUtility appender = new PDFMergerUtility();
appender.appendDocument(destination, source);
source.close(); //comment out just this line and the destination.save will pass
destination.save(new File(RESULT_FOLDER, "PrintMergeIssue.pdf"));
destination.close();
}
}
开发者ID:mkl-public,项目名称:testarea-pdfbox2,代码行数:33,代码来源:FlattenAndMerge.java
示例3: concatena
import org.apache.pdfbox.multipdf.PDFMergerUtility; //导入依赖的package包/类
public void concatena(InputStream anterior, InputStream novo, OutputStream saida, List<String> marcadores)
throws IOException
{
PDFMergerUtility pdfMerger = new PDFMergerUtility();
pdfMerger.setDestinationStream(saida);
PDDocument dest;
PDDocument src;
MemoryUsageSetting setupMainMemoryOnly = MemoryUsageSetting.setupMainMemoryOnly();
if (anterior != null)
{
dest = PDDocument.load(anterior, setupMainMemoryOnly);
src = PDDocument.load(novo, setupMainMemoryOnly);
}
else
{
dest = PDDocument.load(novo, setupMainMemoryOnly);
src = new PDDocument();
}
int totalPages = dest.getNumberOfPages();
pdfMerger.appendDocument(dest, src);
criaMarcador(dest, totalPages, marcadores);
saida = pdfMerger.getDestinationStream();
dest.save(saida);
dest.close();
src.close();
}
开发者ID:mkl-public,项目名称:testarea-pdfbox2,代码行数:27,代码来源:MergeDocuments.java
示例4: mergePDF
import org.apache.pdfbox.multipdf.PDFMergerUtility; //导入依赖的package包/类
public static boolean mergePDF(IContext context,List<FileDocument> documents, IMendixObject mergedDocument ){
int i = 0;
PDFMergerUtility mergePdf = new PDFMergerUtility();
for(i=0; i < documents.size(); i++)
{
FileDocument file = documents.get(i);
InputStream content = Core.getFileDocumentContent(context, file.getMendixObject());
mergePdf.addSource(content);
}
ByteArrayOutputStream out = new ByteArrayOutputStream();
mergePdf.setDestinationStream(out);
try {
mergePdf.mergeDocuments(null);
} catch (IOException e) {
throw new RuntimeException("Failed to merge documents" + e.getMessage(), e);
}
Core.storeFileDocumentContent(context, mergedDocument, new ByteArrayInputStream(out.toByteArray()));
out.reset();
documents.clear();
return true;
}
开发者ID:mendix,项目名称:RestServices,代码行数:26,代码来源:Misc.java
示例5: concatenate
import org.apache.pdfbox.multipdf.PDFMergerUtility; //导入依赖的package包/类
public static void concatenate(List infiles, OutputStream out, long maxMemory, long maxDisk) throws IOException {
final PDFMergerUtility merger = new PDFMergerUtility();
for (Object infile : infiles) {
if (infile instanceof File) {
merger.addSource((File) infile);
} else if (infile instanceof InputStream) {
merger.addSource((InputStream) infile);
} else if (infile instanceof String) {
merger.addSource((String) infile);
} else {
die("concatenate: invalid infile ("+infile.getClass().getName()+"): "+infile);
}
}
merger.setDestinationStream(out);
merger.mergeDocuments(MemoryUsageSetting.setupMixed(maxMemory, maxDisk));
}
开发者ID:cobbzilla,项目名称:cobbzilla-utils,代码行数:17,代码来源:PdfMerger.java
示例6: writeTo
import org.apache.pdfbox.multipdf.PDFMergerUtility; //导入依赖的package包/类
@Override
public boolean writeTo(final String filename) {
if (!swapped) {
return super.writeTo(filename);
}
swapToDisk();
Utilities.shutdownAndAwaitTermination(swapExecutor, "Swap");
try {
LOG.trace("Merging...");
Instant start = Instant.now();
final PDFMergerUtility mergerUtility = new PDFMergerUtility();
mergerUtility.setDestinationFileName(filename + ".pdf");
for (Path path : FileUtils.getPaths(getTempDir(), "partial_*")) {
mergerUtility.addSource(path.toFile());
}
mergerUtility.mergeDocuments(Utilities.getMemorySettings(Environment.getMergeCacheSize()));
Instant end = Instant.now();
LOG.trace("Merging took: " + Duration.between(start, end).toMillis() + "ms");
} catch (IOException e) {
throw new RuntimeException(e);
} finally {
if (tempDir != null) {
FileUtils.removeTempDir(tempDir);
}
}
return isEqual;
}
开发者ID:red6,项目名称:pdfcompare,代码行数:28,代码来源:AbstractCompareResultWithSwap.java
示例7: testMergePreFlattenedGovernmentForms
import org.apache.pdfbox.multipdf.PDFMergerUtility; //导入依赖的package包/类
/**
* <a href="https://stackoverflow.com/questions/47140209/pdfbox-files-are-sharing-common-cosstream-after-flatten">
* PDFBox files are sharing common COSStream after flatten
* </a>
* <br/>
* <a href="https://drive.google.com/file/d/18JbNK1gBivSARvv9kgd5FE8xnD_9-_15/view?usp=drivesdk">
* GovFormPreFlattened.pdf
* </a>
* <p>
* Indeed, even merely merging, and early closing of pre-flattened source documents
* do not mingle well.
* </p>
*/
@Test
public void testMergePreFlattenedGovernmentForms() throws IOException {
try ( InputStream resource1 = getClass().getResourceAsStream("GovFormPreFlattened.pdf");
InputStream resource2 = getClass().getResourceAsStream("GovFormPreFlattened.pdf")) {
PDFMergerUtility pdfMergerUtility = new PDFMergerUtility();
PDDocument src = PDDocument.load(resource1);
PDDocument dest = PDDocument.load(resource2);
pdfMergerUtility.appendDocument(dest, src);
src.close(); //if we don't close the src then we don't have an error
dest.save(new File(RESULT_FOLDER, "PreFlattenedMergeIssue.pdf"));
dest.close();
}
}
开发者ID:mkl-public,项目名称:testarea-pdfbox2,代码行数:27,代码来源:FlattenAndMerge.java
示例8: merge
import org.apache.pdfbox.multipdf.PDFMergerUtility; //导入依赖的package包/类
@Programmatic
public byte[] merge(final List<File> fileList) throws IOException {
final ByteArrayOutputStream baos = new ByteArrayOutputStream();
final PDFMergerUtility ut = new PDFMergerUtility();
for (File file : fileList) {
ut.addSource(file);
}
ut.setDestinationStream(baos);
ut.mergeDocuments(MemoryUsageSetting.setupTempFileOnly());
return baos.toByteArray();
}
开发者ID:estatio,项目名称:estatio,代码行数:16,代码来源:PdfBoxService2.java
示例9: merge
import org.apache.pdfbox.multipdf.PDFMergerUtility; //导入依赖的package包/类
public static InputStream merge(InputStream originalPDF, byte[] titleBlock) throws IOException {
ByteArrayOutputStream tempOutStream = new ByteArrayOutputStream();
PDFMergerUtility mergedDoc = new PDFMergerUtility();
InputStream titleBlockStream = new ByteArrayInputStream(titleBlock);
mergedDoc.addSource(titleBlockStream);
mergedDoc.addSource(originalPDF);
mergedDoc.setDestinationStream(tempOutStream);
mergedDoc.mergeDocuments(MemoryUsageSetting.setupMainMemoryOnly());
return new ByteArrayInputStream(tempOutStream.toByteArray());
}
开发者ID:polarsys,项目名称:eplmp,代码行数:18,代码来源:TitleBlockGenerator.java
注:本文中的org.apache.pdfbox.multipdf.PDFMergerUtility类示例整理自Github/MSDocs等源码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。 |
请发表评论