2016-08-18 7 views
1

PDFボックスを使用してurlからpdfファイルを読んでください.javeコードはpdfを読んでプロジェクトの場所に保存するのに最適です。PDF PDFボックスを使用した読書 - ページ数の明確化

String pdfPageCount = 17; 
String pdfUrl = "abc.org/invoicepdf.pdf?Range=1"; 
URL pdfDownload = new URL(pdfUrl); 
connectionGet = (HttpsURLConnection) pdfDownload.openConnection(); 
String authorizationHeader1 = "Bearer " + getToken; 
connectionGet.setRequestProperty("Authorization", authorizationHeader1); 
connectionGet.setRequestProperty("Content-Type", "application/x-www-form-urlencoded"); 
connectionGet.setRequestMethod("GET"); 
int responseCode = connectionGet.getResponseCode(); 
    if (responseCode != 404) { 
     PDDocument pd = new PDDocument(); 
     InputStream inputstreamFinal1 = connectionGet.getInputStream(); 
     PDDocument load = PDDocument.load(inputstreamFinal1);       
     load.save("CopyOfInvoice1.pdf"); 
    } 

私の次のステップ

私は現在、私はpdfUrl中1でのページ数(/invoicepdf.pdf?Range=1)期待

ハードコードされない、pdfPageCount値に基づいてプロセスをループにしたい:

すべての17ページを読み、1つのpdfファイルに保存

+0

このように、17種類のPDFページを1つのドキュメントに結合する方法を知りたいですか? –

+0

@rabbitguy:正確に – Prabu

+0

人の助けを求める – Prabu

答えて

1

ここでは、PDFMergerExampleに基づいていくつかのコードがあります帽子はコメントに記載されています。あなたのURL取得コードが正しいかどうかは確認していないことに注意してください。

List<InputStream> sources = new ArrayList<InputStream>(); 
int pdfPageCount = 17; 
try 
{ 
    for (int p = 1; p <= pdfPageCount; ++p) 
    { 
     String pdfUrl = "abc.org/invoicepdf.pdf?Range=" + p; 
     URL pdfDownload = new URL(pdfUrl); 
     HttpsURLConnection connectionGet = (HttpsURLConnection) pdfDownload.openConnection(); 
     String authorizationHeader1 = "Bearer " + getToken; 
     connectionGet.setRequestProperty("Authorization", authorizationHeader1); 
     connectionGet.setRequestProperty("Content-Type", "application/x-www-form-urlencoded"); 
     connectionGet.setRequestMethod("GET"); 
     int responseCode = connectionGet.getResponseCode(); 
     if (responseCode != 404) 
     { 
      sources.add(connectionGet.getInputStream()); 
     } 
     else 
     { 
      //TODO error handling 
      return; 
     } 
    } 
    PDFMergerUtility pdfMerger = new PDFMergerUtility(); 
    pdfMerger.addSources(sources); 
    pdfMerger.setDestinationFileName("CopyOfInvoice1.pdf"); 
    pdfMerger.mergeDocuments(MemoryUsageSetting.setupMainMemoryOnly()); 
} 
catch (IOException e) 
{ 
    //TODO error handling 
    return; 
} 
finally 
{ 
    // cleanup 
    for (InputStream source : sources) 
    { 
     IOUtils.closeQuietly(source); 
    } 
} 
+0

ありがとうございます。私はあなたのフィードバックと更新を確認します – Prabu

+0

助けてくれてありがとうございますが、私は最後のセクションに問題があります。 2と2回目の実行に新しいページカウントが追加されたので、ドキュメントは作成されませんでした – Prabu

+0

@Prabu私はあなたが何を意味するのか分かりません。それはあなたがソースArrayListを2回目に初期化/空にしていないことでしょうか? (入力ストリームが "消費される"ため、再利用することはできません) –

関連する問題