web-dev-qa-db-ja.com

pdfbox2.00でドキュメントをPDFMergerUtilityとマージします

Pdfboxは、mergePdf.mergeDocuments()のように1.8.xxでドキュメントをマージします。正常に動作します。pdfboxバージョン2.0.0には、org.Apache.pdfbox.multipdf.PDFMergerUtility.mergeDocuments(MemoryUsageSetting arg0)のような引数が含まれていますMemoryUsageSetting mergeDocumentsの使用方法.I read as like ソースドキュメントのリストをマージし、結果を宛先ファイルに保存します。バージョン2.0.0と同等のコードを提供してください。

public void combine()
    {
        try
        {
        PDFMergerUtility mergePdf = new PDFMergerUtility();
        String folder ="pdf";
        File _folder = new File(folder);
        File[] filesInFolder;
        filesInFolder = _folder.listFiles();
        for (File string : filesInFolder)
        {
            mergePdf.addSource(string);    
        }
    mergePdf.setDestinationFileName("Combined.pdf");
    mergePdf.mergeDocuments();
        }
        catch(Exception e)
        {

        }  
    }
9
senthil kumar

javadoc によると、MemoryUsageSettingは、メモリ/一時ファイルをバッファリングに使用する方法を制御します。

最も簡単な2つの使用法は次のとおりです。

MemoryUsageSetting.setupMainMemoryOnly()

これにより、バッファリングメモリの使用量が、サイズに制限のないメインメモリ(一時ファイルなし)のみを使用するように設定されます。

MemoryUsageSetting.setupTempFileOnly()

これにより、バッファリングメモリの使用量が、サイズに制限のない一時ファイル(メインメモリなし)のみを使用するように設定されます。

だからあなたにとって、電話は

mergePdf.mergeDocuments(MemoryUsageSetting.setupMainMemoryOnly());

または

mergePdf.mergeDocuments(MemoryUsageSetting.setupTempFileOnly());

または、nullを渡します。これはデフォルトでメインメモリのみになります。 javadoc が伝えることでもあります。memUsageSettingは、PDFストリームのバッファリングにメモリを使用する方法を定義します。 nullの場合、無制限のメインメモリが使用されます。

11
Tilman Hausherr