Ověření shody dokumentu s PDF/A

Sada funkcí pro ověření shody (validity) formátu PDF dokumentu dle ISO standardů 19005-1:2005, 19005-2:2011 a ISO 19005-3:2012.

Ověření shody s PDF/A

Formát PDF/A je definován v několika úrovních souladu. Tuto úroveň je možné nastavit a vůči ní bude dokument analyzován. Pokud úroveň není nastavena, ověřuje se vůči úrovni dokumentem proklamované. Hodnoty úrovní souladu mohou být PDF/A-1a, PDF/A-1b, PDF/A-2a, PDF/A-2b, PDF/A-3a, PDF/A-3b, PDF/A-3u.

Webová služba pdfaVerify navíc umožňuje ze vstupního PDF dokumentu získat (vytěžit) jeho vlastnosti jako je Počet stránek, Počet podpisů, Verze PDF, Deklarovaná verze PDF/A, Autor, Titul (Název), Předmět nebo Klíčová slova.

Popis služby pdfaVerify včetně WSDL schématu a příklad požadavku a odpovědi pro SOAP 1.1 a SOAP 1.2 je umístěn na http://localhost/ltd/ltd.asmx?op=pdfaVerify.

Parametr "localhost" je název používaný pro lokální počítač; namísto něj zapište jméno/IP adresu LTD serveru (dle nastavení v IIS).

Požadavek

POST /ltd/ltd.asmx HTTP/1.1
Host: localhost
Content-Type: text/xml; charset=utf-8
Content-Length: length
SOAPAction: "http://software602.com/longtermdocs/pdfaVerify"

<?xml version="1.0" encoding="utf-8"?>
<soap:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
  <soap:Body>
    <pdfaVerify xmlns="http://software602.com/longtermdocs/">
      <Input>base64Binary</Input>
      <ConformanceLevel>string</ConformanceLevel>
      <ReportLanguage>string</ReportLanguage>
      <PDFPropsQuery>string</PDFPropsQuery>
      <Params>string</Params>
    </pdfaVerify>
  </soap:Body>
</soap:Envelope>

<Input>
[povinný element]

Vstup Popis

Base64Binary

PDF soubor v kódování Base64Binary, jehož formát má být ověřen proti deklarované úrovni PDF/A.

<ConformanceLevel> - pokud se hodnota nezadá, zjistí se ze vstupního souboru.
[nepovinný element]

Hodnota úrovně souladu se specifikací archivního formátu PDF/A. Každá novější verze souladu by měla být zpětně kompatibilní. To znamená, že všechny platné PDF/A-1 dokumenty by měly být v souladu se specifikací PDF/A-2. Naopak ne všechny PDF/A-2 vyhovující soubory musí být v souladu se specifikací PDF/A-1. Obdobně to platí pro vztah mezi verzí PDF/A-1 a PDF/A-3, PDF/A-2 a PDF/A-3.

1a

Vyžaduje přesnou vizuální reprodukci doplněnou o povinné mapování textu na standard Unicode a přesnou deklaraci a popis logické struktury dokumentu (Tagged PDF), ISO 19005-1:2008.

1b

Vyžaduje přesnou vizuální reprodukci, ale ne informace o struktuře nebo sémantické informace, ISO 19005-1:2008.

2a

Založeno na novější specifikaci PDF dokumentu 1.5, 1.6 a 1.7.

2b

2u

Vychází ze specifikace 2b navíc s požadavkem na kódování veškerého textu v dokumentu v Unicode mapování.

3a

Vychází ze specifikace ISO 19005-3:2012, umožňuje vkládání libovolných formátů (např. XML, CSV, CAD, wordprocessing dokumentů, tabulkových dokumentů a dalších) do formátu PDF / A jako kompletní archivované objekty.

3b

3u

PDF

Ověření dokumentu, zda se jedná o formát PDF.

PDF_17

Ověření souladu dokumentu vůči ISO specifikaci 32000-1:2008 (PDF 1.7).

<ReportLanguage>
[nepovinný element]

Vstup Popis

String

Jazyk PDF/A reportu v odpovědi. Hodnoty:

  • cz – česky.

  • en – anglicky (výchozí).

  • de – německy.

<PDFPropsQuery>
[nepovinný element]

Vstup Popis

String

Volitelné, může obsahovat parametry pro vytěžení vlastností z PDF dokumentu.

Například:

  • NumOfPages – v PDFProperties vrátí název vlastnosti a hodnotu s počtem stran dokumentu.

  • NumOfSignatures – v PDFProperties vrátí název vlastnosti a hodnotu s počtem podpisů v dokumentu.

  • PDFVersion – v PDFProperties vrátí název vlastnosti a jako hodnotu PDF verzi dokumentu.

  • PDFAVersion – v PDFProperties vrátí název vlastnosti a jako hodnotu dokumentem deklarovanou PDF/A úroveň. Pokud hodnota chybí, nejedná se o PDF/A.

  • XmpMetadata – v PDFProperties vrátí název vlastnosti a jako hodnotu Base64 kódované XML s XMP daty.

  • Metadata_Author – v PDFProperties vrátí název vlastnosti a jako hodnotu autora dokumentu.

  • Metadata_Title – v PDFProperties vrátí název vlastnosti a jako hodnotu název (title) dokumentu.

  • Metadata_Subject – v PDFProperties vrátí název vlastnosti a jako hodnotu předmět dokumentu.

  • Metadata_Keywords_ALL – speciální klíč vrací v PDFProperties všechna klíčová slova (Keywords) - jejich názvy a hodnoty (pokud existují).

V názvech klíčů jsou povolené znaky: a-z, A-Z, 0-9, _.

V názvech klíčů jsou zakázané znaky: ; (středník) a , (čárka).

Pro oddělení jednotlivých klíčů je třeba použít ; (středník) nebo , (čárku).

Jednotlivé klíče lze také uzavřít do " " uvozovek.

Mezery před/za klíčem odebíráme.

Návratové hodnoty pole řetězců PDFProperties jsou:

  • Property.Name.

  • Property.Value.

Pokud se hodnota dané Property.Name nenalezla, Property.Value chybí.

Pro parsování metadat z Keywords je třeba v Params nastavit "UseJSON=1".

<Params>
[nepovinný element]

Vstup Popis

string

Volitelné, pro parsování metadat z Keywords je třeba nastavit "UseJSON=1".

Odpověď

HTTP/1.1 200 OK
Content-Type: text/xml; charset=utf-8
Content-Length: length

<?xml version="1.0" encoding="utf-8"?>
<soap:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
  <soap:Body>
    <pdfaVerifyResponse xmlns="http://software602.com/longtermdocs/">
      <pdfaVerifyResult>int</pdfaVerifyResult>
      <Report>
        <ErrorCode>int</ErrorCode>
        <ErrorMessage>string</ErrorMessage>
        <ConformanceLevel>string</ConformanceLevel>
       <ForcedToImageFormat>boolean</ForcedToImageFormat>
        <Result>int</Result>
        <Issues>
          <PDFAIssue>
            <Severity>int</Severity>
            <Description>string</Description>
          </PDFAIssue>
          <PDFAIssue>
            <Severity>int</Severity>
            <Description>string</Description>
          </PDFAIssue>
        </Issues>
        <PDFProperties>
          <Property>
            <Name>string</Name>
            <Value>string</Value>
          </Property>
          <Property>
            <Name>string</Name>
            <Value>string</Value>
          </Property>
        </PDFProperties>
      </Report>
    </pdfaVerifyResponse>
  </soap:Body>
</soap:Envelope>

<pdfaVerifyResult>

Návratová hodnota Popis

Int

Výsledek metody pdfaVerify. 0 = v pořádku. K chybě dojde například pokud není nainstalovaná nebo je nefunkční PDFA podpora.

Jinak viz kapitola Návratové kódy.

<Report>

<ErrorCode>

Návratová hodnota Popis

Int

Výsledek funkce ověření shody. 0 = ověření se podařilo, jinak kód chyby.

<ErrorMessage>

Návratová hodnota Popis

String

Textový popis chyby při problému s ověřením shody.

<ConformanceLevel>

Návratová hodnota Popis

String

Úroveň, na kterou se prověřovala shoda.

<ForcedToImageFormat>

Návratová hodnota Popis

Boolean

Hodnota určující, zda byl dokument nuceně převeden do obrázku.

<Result>

Návratová hodnota Popis

Int

Shoda souboru se zvolenou úrovní specifikace.

  • 0 = formát odpovídá,

  • 1 = vyskytly se nezávažné neshody,

  • 2 = dokument neodpovídá.

<Issues>

<PDFAIssue> - Opakovací sekce, dle počtu nalezených neshod

<Severity>

Návratová hodnota Popis

Int

Závažnost nalezené neshody:

  • 1 = informace,

  • 2 = varování,

  • 3 = chyba.

<Description>

Návratová hodnota Popis

String

Popis nalezené neshody.

</PDFAIssue>

</Issues>

<PDFProperties>

<Property>

<Name>

Návratová hodnota Popis

string

Název PDF vlastnosti zvolené v PDFPropsQuery.

<Value>

Návratová hodnota Popis

String

Hodnota PDF vlastnosti zvolené v PDFPropsQuery.

</Property>

</PDFProperties>

</Report>