5

特定の PDF ファイルが「通常の」PDF ではなく、PDF ポートフォリオまたは PDF パッケージであるかどうかを検出する方法を知っている人はいますか? 特定の種類の PDF を検出するための情報をまだ見つけていないので、私は Java ソリューションを好みますが、入手できるものを取得して、後で Java ソリューションを見つけようとします。

(過去の質問を検索すると、PDF ポートフォリオや PDF パッケージのようなものが存在することを知らない人がたくさんいるようです。一般に、これらは両方とも、アドビが複数の個別の PDF を単一の PDF ファイルにパッケージ化することを許可する方法です。 . Reader で PDF パッケージを開くと、埋め込まれた PDF のリストがユーザーに表示され、そこからさらに閲覧することができます. PDF ポートフォリオはもう少し複雑に見えます. 埋め込みファイル用の Flash ベースのブラウザーも含まれており、ユーザーはそこから個別の PDF を抽出するには. それらに関する私の問題と、コードでそれらを検出できるようにしたい理由は、OS X の組み込みの Preview.app がこれらのファイルを読み取ることができないためです。少なくとも、私の Web アプリのユーザーには、それらをアップロードするとプラットフォーム間の互換性が低下する可能性があることを警告したいと思います。)

4

2 に答える 2

0

この質問は古いですが、誰かが知りたい場合は可能です。次のコマンドを使用して、Acrobat と JavaScript で実行できます。

 if (Doc.collection() != null)
 {
     //It Is Portfolio
 }

Acrobat JavaScript API は、「コレクション オブジェクトは Doc.collection プロパティから取得されます。Doc.collection は、PDF コレクション (PDF パッケージおよび PDF ポートフォリオとも呼ばれる) がない場合、null 値を返します。コレクション オブジェクトは、初期値を設定するために使用されます。コレクション内のドキュメント、コレクションの初期ビューの設定、およびコレクション フィールド (またはカテゴリ) の取得、追加、および削除を行います。"

于 2012-05-29T15:41:10.743 に答える
0
I'm also facing same problem while extracting data through kofax,  but i got solution and its working fine need to add extra jar for Document class.

import java.io.File;
import java.io.IOException;
import java.io.InputStream;

public class PDFPortfolio {

    /**
     * @param args
     */
    public static void main(String[] args) {

        com.aspose.pdf.Document pdfDocument = new com.aspose.pdf.Document("e:/pqr1.pdf");
        // get collection of embedded files
        com.aspose.pdf.EmbeddedFileCollection embeddedFiles = pdfDocument.getEmbeddedFiles();
        // iterate through individual file of Portfolio
        for(int counter=1; counter<=pdfDocument.getEmbeddedFiles().size();counter++)
        {
            com.aspose.pdf.FileSpecification fileSpecification = embeddedFiles.get_Item(counter);
            try {
                InputStream input = fileSpecification.getContents();
                File file = new File(fileSpecification.getName());
                // create path for file from pdf
              //  file.getParentFile().mkdirs();
                // create and extract file from pdf
                java.io.FileOutputStream output = new java.io.FileOutputStream("e:/"+fileSpecification.getName(), true);
                byte[] buffer = new byte[4096];
                int n = 0;
                while (-1 != (n = input.read(buffer)))
                output.write(buffer, 0, n);

                // close InputStream object
                input.close();
                output.close();
                } catch (IOException e) {
                e.printStackTrace();
            }
        }

    }

}
于 2014-01-29T10:40:06.647 に答える