다음과 같이 xmp 메타 데이터를 자바로 만들고 pdf 중 하나에 넣어야합니다.Itext는 Java로 PDF로 XMP를 만듭니다.
<rdf:Description rdf:about="" xmlns:pdfaExtension="http://www.aiim.org/pdfa/ns/extension/" xmlns:pdfaSchema="http://www.aiim.org/pdfa/ns/schema#" xmlns:pdfaProperty="http://www.aiim.org/pdfa/ns/property#" xmlns:pdfaType="http://www.aiim.org/pdfa/ns/type#" xmlns:pdfaField="http://www.aiim.org/pdfa/ns/field#"> <pdfaExtension:schemas>
<rdf:Bag>
<rdf:li rdf:parseType="Resource">
<pdfaSchema:schema>ABI Assegni Schema</pdfaSchema:schema> <pdfaSchema:namespaceURI>http://abi.it/std/cheque/xmlns</pdfaSchema:namespaceURI> <pdfaSchema:prefix>assegni</pdfaSchema:prefix>
<pdfaSchema:property>
<rdf:Seq>
<rdf:li rdf:parseType="Resource">
<pdfaProperty:name>IDDocumento</pdfaProperty:name> <pdfaProperty:valueType>Text</pdfaProperty:valueType> <pdfaProperty:category>external</pdfaProperty:category> <pdfaProperty:description>Identificativo univoco del documento</pdfaProperty:description>
</rdf:li>
<rdf:li rdf:parseType="Resource">
<pdfaProperty:name>datachiusura</pdfaProperty:name> <pdfaProperty:valueType>Date</pdfaProperty:valueType> <pdfaProperty:category>external</pdfaProperty:category> <pdfaProperty:description>Data e ora della produzione del file</pdfaProperty:description>
</rdf:li>
<rdf:li rdf:parseType="Resource">
<pdfaProperty:name>oggettodocumento</pdfaProperty:name> <pdfaProperty:valueType>Text</pdfaProperty:valueType> <pdfaProperty:category>external</pdfaProperty:category> <pdfaProperty:description>Oggetto del documento</pdfaProperty:description>
</rdf:li>
<rdf:li rdf:parseType="Resource">
<pdfaProperty:name>soggettoproduttore</pdfaProperty:name> <pdfaProperty:valueType>soggetto</pdfaProperty:valueType> <pdfaProperty:category>external</pdfaProperty:category> <pdfaProperty:description>Soggetto produttore</pdfaProperty:description>
</rdf:li>
<rdf:li rdf:parseType="Resource">
<pdfaProperty:name>destinatario</pdfaProperty:name> <pdfaProperty:valueType>soggetto</pdfaProperty:valueType> <pdfaProperty:category>external</pdfaProperty:category> <pdfaProperty:description>Destinatario</pdfaProperty:description>
</rdf:li> </rdf:Seq>
</pdfaSchema:property>
</rdf:li>
</rdf:Bag>
</pdfaExtension:schemas>
</rdf:Description>
은 지금까지 나는이 코드 부분을 시도 :
PdfReader reader = new PdfReader(baos.toByteArray());
PdfAStamper stamper = new PdfAStamper(reader, baos, PdfAConformanceLevel.PDF_A_1B);
String namespaceExtension = new String("http://www.aiim.org/pdfa/ns/extension/");
String namespaceSchema = new String("http://www.aiim.org/pdfa/ns/schema#");
String namespaceProperty = new String("http://www.aiim.org/pdfa/ns/property#");
String namespaceType = new String("http://www.aiim.org/pdfa/ns/type#");
String namespaceField = new String("http://www.aiim.org/pdfa/ns/field#");
XMPSchemaRegistry registry = XMPMetaFactory.getSchemaRegistry();
registry.registerNamespace(namespaceExtension, "pdfaExtension");
registry.registerNamespace(namespaceSchema, "pdfaSchema");
registry.registerNamespace(namespaceProperty, "pdfaProperty");
registry.registerNamespace(namespaceType, "pdfaType");
registry.registerNamespace(namespaceField, "pdfaField");
XmpWriter w = new XmpWriter(baos);
w.appendArrayItem(namespaceExtension, "schemas", "a");
w.close();
writer.setXmpMetadata(baos.toByteArray());
를 그리고 생성 된 XMP는 다음과 같습니다 :
<pdfaExtension:schemas>
<rdf:Bag>
<rdf:li>a</rdf:li>
</rdf:Bag>
지금은 계속하는 방법을 이해할 수 없습니다. 이 작업을 수행하는 방법에 대한 아이디어가 있습니까? 사전에
덕분에 나는 "해킹"의 비트가이 대답을 고려하더라도 그것이 어떤 iText를 의미 메타 데이터를 전혀 사용하지 않습니다한다는 의미에서, iText5으로 표현한 나는이 질문에 대답 할 수 있어요
무엇을 시도 했습니까? iText의 어떤 버전을 사용하고 있습니까? 특정 5.x.y 버전 (어느 버전인지 확인하지 않음)부터 iText는 Adobe에서 제공 한 라이브러리를 사용하여 XMP를 만듭니다. iText 7에서는 API가 완전히 변경되었으므로 사용중인 iText 버전을 공유하지 않고도 대답을 기대하지 마십시오. –
나는 이것을 시도했다 : XmpWriter w = 새로운 XmpWriter (baos); \t \t \t w.appendArrayItem (namespaceExtension, "schemas", "a"); \t \t \t \t \t \t w.close(); \t \t \t \t \t \t writer.setXmpMetadata (baos.toByteArray()); 이 생성 : 에 이동하는 방법에 아니 생각. itext 5.5.8 –
Giamma
@ Giamma를 사용하여 질문에 설명을 추가하십시오 (아래에 [edit] (http://stackoverflow.com/posts/38593088/edit) 링크가 있습니다); 주석의 코드는 읽기가 어렵습니다. – mkl