5

ドキュメントと例を読みましたが、すべてをまとめるのに苦労しています。テストpdfファイルを取得してバイト配列に変換し、バイト配列を取得してpdfファイルに変換し、pdfファイルをディスクに作成しようとしています。

あまり役に立たないかもしれませんが、これは私がこれまでに得たものです:

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());
    }
}
4

1 に答える 1

8

Java プロジェクトの IMO に不可欠なApache commonsを使用できます。

次に、FileUtilsを 使用できます。readFileToByteArray(File file)writeByteArrayToFile(File file, byte[] data)

(ここに commons-io があり、ここに FileUtils があります: http://commons.apache.org/proper/commons-io/download_io.cgi )

たとえば、ここでこれを試してみたところ、見事に機能しました。

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();
}
于 2013-07-17T19:18:52.857 に答える