アイコン 株式会社トラスト・ソフトウェア・システム ロゴ

Pdftools SDK
PDF文書の有効性チェック機能

さまざまな PDF 仕様に従って PDF ドキュメントを検証できます。
次の標準を検証できます。

PDFPDF/A
PDF Reference 1.3-1.6PDF/A-1 (ISO 19005-1)
PDF 1.7 (ISO 32000-1)PDF/A-2 (ISO 19005-2)
PDF 2.0 (ISO 32000-2)PDF/A-3 (ISO 19005-3)

この機能は「Pdftools SDK」ライブラリの一部です。

見積もり

PDFの有効性チェック機能

PDF文書はPDF の ISO標準、長期アーカイブ用のPDF/A、および特定の適合レベルに従って検証されます。

PDF文書のバージョン番号の確認などの追加の検証テストも可能です。
さらに、適切な色の使用や適切なフォントの使用およびその他の仕様など内部指令への準拠を検証することもでき、個々のドキュメントとアーカイブ全体の準拠をチェックできます。

以下のようなチェックができます:

準拠レベル

準拠レベルは PDF 標準によって決定されます。
PDF/A 仕様標準では、次の準拠レベルがサポートされています。

検証チェック

PDF文書を検証するとPDFのバージョンと準拠レベルに応じてさまざまな語彙、構文、および意味の検証チェックが実行されます。

検証レポート

ドキュメント検証プロセスの結果をどのように受け取るかを決めることができます。
レポートレベル(詳細レポートまたはエラーレポートの概要)を選択でき、説明には頻度、ページ番号、PDFオブジェクト番号などのすべての詳細が含まれます。
内部仕様(標準画像解像度など)の検証も同時に行うことができます。

サンプル

C#のサンプルプロジェクトではPdftools SDKライブラリ(DLL)をNuGetから自動でダウンロードします。
CのサンプルプロジェクトにはPdftools SDKライブラリ(DLL)が含まれています。

ライセンスキー無しで試用できます。ただし、結果に「透かし」が入ります。
「透かし」の削除をご希望の場合は問い合わせページまたはメールでお問い合わせください。

License Agreement(利用許諾契約書)が含まれていますので必ず確認してください。

PDFの適合性を検証

PDF文書の規格への準拠性を検証します。


void ErrorListener(void* pContext, const TCHAR* szDataPart, const TCHAR* szMessage,
                   TPdfToolsPdfAValidation_ErrorCategory iCategory, const TCHAR* szContext, int iPageNo, int iObjectNo)
{
    if (iPageNo > 0)
        _tprintf(_T("- %d: %s (%s on page %d)\n"), iCategory, szMessage, szContext, iPageNo);
    else
        _tprintf(_T("- %d: %s (%s)\n"), iCategory, szMessage, szContext);
}			
void Validate(const TCHAR* szInPath)
{
    TPdfToolsPdf_Document*                    pInDoc     = NULL;
    TPdfToolsPdfAValidation_Validator*        pValidator = NULL;
    TPdfToolsPdfAValidation_ValidationResult* pResult    = NULL;

    // 入力PDFファイルを開く
    FILE* pInStream = _tfopen(szInPath, _T("rb"));
    GOTO_CLEANUP_IF_NULL_PRINT_ERROR(pInStream, _T("Failed to open the input file \"%s\" for reading.\n"), szInPath);
    TPdfToolsSys_StreamDescriptor inDesc;
    PdfToolsSysCreateFILEStreamDescriptor(&inDesc, pInStream, 0);
    pInDoc = PdfToolsPdf_Document_Open(&inDesc, _T(""));
    GOTO_CLEANUP_IF_NULL_PRINT_ERROR(pInDoc, _T("Failed to open document \"%s\". %s (ErrorCode: 0x%08x).\n"), szInPath,
                                     szErrBuf, PdfTools_GetLastError());

    // すべての検証エラーメッセージをコンソールに書き出す検証オブジェクトを生成
    pValidator = PdfToolsPdfAValidation_Validator_New();
    PdfToolsPdfAValidation_Validator_AddErrorHandler(pValidator, NULL,
                                                     (TPdfToolsPdfAValidation_Validator_Error)ErrorListener);

    // PDF文書の規格準拠性を検証
    pResult = PdfToolsPdfAValidation_Validator_Validate(pValidator, pInDoc, NULL);
    GOTO_CLEANUP_IF_NULL_PRINT_ERROR(pResult, _T("Failed to validate document. %s (ErrorCode: 0x%08x).\n"), szErrBuf,
                                     PdfTools_GetLastError());

    // 検証結果をレポート
    TPdfToolsPdf_Conformance iClaimedConformance;
    PdfToolsPdf_Document_GetConformance(pInDoc, &iClaimedConformance);
    if (PdfToolsPdfAValidation_ValidationResult_IsConforming(pResult))
        printf("Document conforms to %s.\n", PdfToolsPdf_Conformance_ToStringA(iClaimedConformance));
    else
        printf("Document does not conform to %s.\n", PdfToolsPdf_Conformance_ToStringA(iClaimedConformance));

cleanup:
    PdfTools_Release(pResult);
    PdfTools_Release(pValidator);
    PdfToolsPdf_Document_Close(pInDoc);
    if (pInStream)
        fclose(pInStream);
}			
private static ValidationResult Validate(string inPath)
{
    // 入力PDFファイルを開く
    using var inStr = File.OpenRead(inPath);
    using var inDoc = Document.Open(inStr);

    // すべての検証エラーメッセージをコンソールに書き出す検証オブジェクトを生成
    var validator = new Validator();
    validator.Error += (s, e) => Console.WriteLine("- {0}: {1} ({2}{3})", e.Category, e.Message, e.Context, e.PageNo > 0 ? " on page" + e.PageNo : "");

    // PDF文書の規格準拠性を検証
    return validator.Validate(inDoc);
}			
サンプル・プロジェクト(C)をダウンロード ReadMeを開く
サンプル・プロジェクト(C#)をダウンロード ReadMeを開く
サンプル・プロジェクトをダウンロード

見積もり

お問い合わせ、ご質問、技術サポート

質問のページからお送りいただくようお願いします。
または、メールでsupport@trustss.co.jpあてにお送りください。


ご購入前の技術的質問も無償で対応します。サポート受付ページからお願いします。

> PDF Structure (PDF構成)

> PDF Imager-LP (画像化)

> PDF Stamper (電子印鑑)

- Pdftools SDK

> Pdftool SDK APIリファレンス