2013-07-17 3 views
3

설명서와 예제를 읽었지만 모두 맞추기가 힘듭니다. 난 그냥 테스트 PDF 파일을 데리고 바이트 배열로 다음 바이트 배열을 변환하고 다시 pdf 파일로 변환 후 디스크에 PDF 파일을 만들려고 노력하고 있어요.PDF를 byte []로 변환하고 그 반대의 경우는

그것은 아마 많은 도움이되지 않습니다, 그러나 이것은 내가 지금까지있어 무엇 :

package javaapplication1; 

import java.io.ByteArrayOutputStream; 
import java.io.IOException; 
import org.apache.pdfbox.cos.COSStream; 
import org.apache.pdfbox.exceptions.COSVisitorException; 
import org.apache.pdfbox.pdmodel.PDDocument; 

public class JavaApplication1 { 

    private COSStream stream; 

    public static void main(String[] args) { 
     try { 
      PDDocument in = PDDocument.load("C:\\Users\\Me\\Desktop\\JavaApplication1\\in\\Test.pdf"); 
      byte[] pdfbytes = toByteArray(in); 
      PDDocument out; 
     } catch (Exception e) { 
      System.out.println(e); 
     } 
    } 

    private static byte[] toByteArray(PDDocument pdDoc) throws IOException, COSVisitorException { 
     ByteArrayOutputStream out = new ByteArrayOutputStream(); 
     try { 
      pdDoc.save(out); 
      pdDoc.close(); 
     } catch (Exception ex) { 
      System.out.println(ex); 
     } 
     return out.toByteArray(); 
    } 

    public void PDStream(PDDocument document) { 
     stream = new COSStream(document.getDocument().getScratchFile()); 
    } 
} 
+0

PDF는 바이트 배열이며 이진 파일 만 읽으면됩니다. 하지만 뭔가 다른 것을 의미할까요? – Andrey

+0

어떤 이유로 PDF를 바이트 배열로 변환 한 다음 다시 PDF로 만들 때 새로 만든 PDF를 열려고하면 손상되었다고 말합니다. 그래서 나는 그것을 피하기 위해 pdfbox를 사용하기로 결정했습니다. pdfbox를 건너 뛰고 그것을 할 수 있고 일하는 pdf를 되 찾을 수 있습니까? – ThreaT

+0

최종 목표는 무엇입니까? 필자는 바이트 배열로 PDF를 변환하는 데 충분한 자체를 사용할 수 없습니다. – Andrey

답변

6

당신은 IMO 어떤 자바 프로젝트에 필수적이다 Apache commons를 사용할 수 있습니다.

FileUtilsreadFileToByteArray(File file)writeByteArrayToFile(File file, byte[] data)을 사용할 수 있습니다.

예를 들어, 난 그냥 여기를 시도하고 아름답게 일 :

(http://commons.apache.org/proper/commons-io/download_io.cgi 여기가 Fileutils의이 어디 인 공유지-IO입니다).

try { 
    File file = new File("/example/path/contract.pdf"); 
    byte[] array = FileUtils.readFileToByteArray(file); 
    FileUtils.writeByteArrayToFile(new File("/example/path/contract2.pdf"), array); 

} catch (IOException e) { 
    e.printStackTrace(); 
} 
+0

내가 이것을 사용하면 바이트 []를 파일로 다시 변환 할 때 손상된 PDF 파일이 생성됩니다 ... 성공적으로 수행 할 수 있습니까? – ThreaT

+0

FileUtils를 사용해도? 나는 많은 pdf 's를 포함하여 많은 다른 파일을 많이 사용한다. 그리고 어떤 문제도 가지지 않았다.) – Doodad

+0

혹시 혹시 그것을 보여줄 수있는 오래된 코드가 있는가? – ThreaT

관련 문제