2015-12-22 63 views
1

我需要保存一個PDF文檔,通過aspose.pdf for java庫存儲產生的(不使用臨時文件)是否有可能保存PDF文檔的字節數組(aspose.pdf對Java)

我一直在尋找在documentation並沒有找到具有適當簽名的save方法。 (我正在尋找某種輸出流,或者至少是字節數組)。

可能嗎?如果是這樣,我該如何管理?

謝謝

+0

也許這可以幫助你:http://www.aspose.com/community/forums/thread/326929/how-to-write-pdf-stream-to-pdf-file.aspx – ivan

+0

這也可能工作:http://www.aspose.com/docs/display/pdfjava/Create+a+Hello+World+PDF+document+through+API – ivan

+0

謝謝,但關於C#的第一個鏈接,我使用java。在第二個他們正在使用'pdf1.save(「HelloWorld.pdf」)',但我正在尋找像'pdf1.save(outputStream)' – ppopoff

回答

7

Aspose.Pdf的Java支持保存輸出到兩個文件和數據流。請檢查以下代碼片段,它將幫助您完成任務。

byte[] input = getBytesFromFile(new File("C:/data/HelloWorld.pdf")); 
ByteArrayOutputStream output = new ByteArrayOutputStream(); 
com.aspose.pdf.Document pdfDocument = new com.aspose.pdf.Document(new ByteArrayInputStream(input)); 
pdfDocument.save(output); 
//If you want to read the result into a Document object again, in Java you need to get the 
//data bytes and wrap into an input stream. 
InputStream inputStream=new ByteArrayInputStream(output.toByteArray()); 

我是Aspose的開發者傳道人Tilal Ahmad。

+0

謝謝,那就是我一直在尋找的! – ppopoff

0

我做了類似的事情。

這裏是方法將數據寫入字節:

public byte[] toBytes() { 
     //create byte array output stream object 
     ByteArrayOutputStream byteOutStream = new ByteArrayOutputStream(); 
     //create new data output stream object 
     DataOutputStream outStream = new DataOutputStream(byteOutStream); 
     try {//write data to bytes stream 
      if (data != null) { 
      outStream.write(data);//write data 
      }//return array of bytes 
     return byteOutStream.toByteArray(); 
    } 

然後,你做這樣的事情

yourFileName.toBytes; 
+1

我正在尋找* specific *庫的解決方案case('aspose.pdf for java'),它使用以下方法將文檔保存爲硬盤上的文件:'pdfFile.save(「/ name/of/the/file.pdf」)'。我期待outputstream作爲參數的解決方案。 – ppopoff

+0

您是否在使用上面Tilal共享的ByteArrayOutputStream對象時遇到任何問題。如果您遇到任何問題,請通過在Aspose.Pdf產品支持論壇中發佈查詢來共享您的資源文件。 – codewarior

相關問題