2015-12-22 3 views
1

мне нужно сохранить документ в формате PDF, сгенерированный aspose.pdf for java библиотеки в памяти (без использования временного файла)Можно ли сохранить документ в формате PDF в массив байтов (Aspose.Pdf для Java)

Я смотрел на documentation и не нашел метод save с соответствующей подписью. (Я искал какой-то выходной поток или, по крайней мере, массив байтов).

Возможно ли это? Если да, то как я могу это сделать?

Thanks

+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()); 

Я Тилал Ахмад, евангелист-разработчик в Апозитории.

+0

Спасибо, вот что я искал! – ppopoff

0

I подобный предмет.

Вот способ для записи данных в байте:

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

Я искал решение для * конкретной * библиотеки в этом case ('aspose.pdf для java'), который сохраняет документы в виде файлов на жестком диске, используя следующий метод:' pdfFile.save ("/ name/of/the/file.pdf") '. Я ожидал решения с выходным потоком в качестве параметра. – ppopoff

+0

Вы столкнулись с какой-либо проблемой при использовании объекта ByteArrayOutputStream, который был добавлен Tilal выше. В случае возникновения каких-либо проблем, поделитесь своими файлами ресурсов, разместив запрос в форуме поддержки продуктов Aspose.Pdf. – codewarior