1

itextSharp を使用した PDF/A の作成に苦労しています。見栄えの良い PDF ファイルを返す PdfAWriter をまだ使用していますが、ここでファイルを検証しようとすると、何か問題が発生します。この検証ツールは、次のメッセージを返します。

  • dc:title/*[0] :: 言語修飾子がありません。
  • dc:description/*[0] :: 言語修飾子がありません。
  • 必要な XMP プロパティ 'pdfaid:part' がありません
  • 必要な XMP プロパティ 'pdfaid:conformance' がありません
  • ドキュメント情報エントリ「CreationDate」に必要な XMP プロパティ「xmp:CreateDate」がありません。
  • ドキュメント情報エントリ「ModDate」に必要な XMP プロパティ「xmp:ModifyDate」がありません

これは私が使用しているコードです:

oWriter = PdfAWriter.GetInstance(oDoc, New FileStream(sNomeFileOut, FileMode.Create), PdfAConformanceLevel.PDF_A_1B)
oWriter.PdfVersion = PdfAWriter.VERSION_1_5
Dim pdfD As New PdfDictionary()
pdfD.Put(New PdfName("Keywords"), New PdfString("DESADV"))
pdfD.Put(New PdfName("Creator"), New PdfString("TESI eIntegration"))
pdfD.Put(New PdfName("Author"), New PdfString("TESI eIntegration"))
pdfD.Put(New PdfName("Title"), New PdfString("DESADV PDS version"))
pdfD.Put(New PdfName("Subject"), New PdfString("DESADV PDS version"))
pdfD.Put(New PdfName("pdfaid:conformance"), New PdfString("PDF/A 1B"))
pdfD.Put(New PdfName("xmp:CreateDate"), New PdfString(DateTime.Now.ToShortDateString()))
pdfD.Put(New PdfName("xmp:ModifyDate"), New PdfString(DateTime.Now.ToShortDateString()))
Dim stream As New MemoryStream
Dim xmp As New XmpWriter(stream, pdfD, PdfAConformanceLevel.PDF_A_1B)
xmp.Close()
oWriter.XmpMetadata = stream.ToArray()
oWriter.PageEvent = New PdfPageEventHandler

誰かがこの問題を解決するためにハーフできますか?

4

1 に答える 1

2

DocumentPDF/A 準拠レベルで設定したメタデータに基づいて、iTextSharp に XMP メタデータを自動的に作成させることができます。次のようなことを試してください:

Document oDoc = new Document();
PdfWriter oWriter = PdfAWriter.GetInstance(oDoc,
  new FileStream(sNomeFileOut, FileMode.Create), PdfAConformanceLevel.PDF_A_1B);
oDoc.AddTitle("Some title");
oDoc.AddSubject("Subject");
oDoc.AddKeywords("Keywords, go, here");
oDoc.AddCreator("Some app");
oDoc.AddAuthor("Author");
oWriter.CreateXmpMetadata();
oDoc.Open();
//...

Bruno がすでにコメントしたように、アップグレードは良い考えです。5.3.3 以降、多くの PDF/A 関連の変更が行われました。

于 2014-04-29T14:55:23.357 に答える