0

pdfbox-1.8.12 を使用して PDF からコンテンツを読み取り、XFA を取得しています。フィールド値を見逃すことなく、ほとんどのファイルの XFA を正常に取得できました。

問題は、 error.pdfのようないくつかのファイルにあります。CIN のように値のないフィールドがたくさんありますが、PDF Viewer、foxit、または Acrobat でファイルを開くと、そのフィールドが表示されます。

    public static byte[] getParsableXFAForm(File file) {
    if (file == null)
        return null;
    PDDocument doc;
    PDDocumentCatalog catalog;
    PDAcroForm acroForm;
    PDXFA xfa;
    try {
        doc = PDDocument.load(file);
        catalog = doc.getDocumentCatalog();
        acroForm = catalog.getAcroForm();
        xfa = acroForm.getXFA();
        byte[] xfaBytes = xfa.getBytes();
        doc.close();
        return xfaBytes;
    } catch (IOException e) {
        // handle IOException
        // happens when the file is corrupt.
        System.out.println("IOException");
        return null;
    }
}

次に、byte[] が String に変換されます。

これはこのファイルの xfa であり、これで「U72300DL1996PLC075672」を検索すると、見つからないでしょう。

これは通常のファイルで、すべてのフィールドが含まれています。

何か案は?私はすべてを試しましたが、読者がその値を見ることができるので、私もできるはずです.

編集 : ファイルをダウンロードする必要があります。ブラウザで表示できない場合があります。

4

1 に答える 1