Przejdź do głównej zawartości
getnextpdf.com

Pro edycja

Interoperacyjność

NextPDF Pro dostarcza wersjonowany zestaw obiektów transferu danych (DTO) wyników, które serializują wyjście analizy PDF — informacje o dokumencie, strony, bloki tekstu, segmentację oraz dane formularza — do stabilnego, zablokowanego schematem kształtu JSON na potrzeby konsumpcji przez systemy i narzędzia zewnętrzne.

Ta funkcja jest dostarczana w NextPDF Pro (nextpdf/pro) i aktywuje się wraz z kopertą licencyjną poziomu Pro. Wdrożenie bez tego uprawnienia nie ładuje klas tej funkcji. Interop jest częścią edycji Pro; nie ma osobnej flagi licencyjnej dla poszczególnych funkcji. Porównaj edycje i uzyskaj licencję.

Okno terminala
composer require nextpdf/pro:^3

Gdy wyjście przetwarzania PDF przekracza granicę procesu lub usługi, odbiorca potrzebuje stabilnego kontraktu. Powierzchnia Interop V1 to zapewnia:

  • InteropResultInterface — implementuje go każde DTO wyniku. Każde serializuje się do tablicy bezpiecznej dla JSON, która zawsze niesie klucz schema_version, oraz do ciągu JSON.
  • DTO wynikówDocumentInfo, PageInfo, BoundingBox, ExtractedText / ExtractedPage / TextBlock, DocumentSegmentation / Segment oraz FormData / FormField. Każde jest niezmienialnym widokiem jednego wyniku analizy.
  • SchemaLock — strażnik CI. Przechowuje SHA-256 zamrożonego schematu i zawodzi kompilację, jeśli plik schematu zmieni się bez odpowiadającego podbicia wersji, dzięki czemu kontrakt sieciowy nie może po cichu dryfować.

Powierzchnia Interop jest jawnie wersjonowana (SCHEMA_VERSION). Traktuj ją jak publiczny kontrakt API: zmiany addytywne podbijają schemat; zmiany łamiące wymagają nowej wersji głównej.

Kształt serializacji jest traktowany jak publiczny kontrakt API, a nie szczegół implementacji. Każde DTO niesie klucz schema_version, więc konsumenci rozgałęziają się na otrzymanym kształcie, zamiast zgadywać. SchemaLock przypina SHA-256 zamrożonego schematu w CI, dzięki czemu format nie może dryfować bez podbicia wersji. To właśnie pozwala systemom zewnętrznym bezpiecznie budować w oparciu o JSON: kontrakt przesuwa się tylko wtedy, gdy przesuwa się wersja. Wyjście pozostaje przenośne — udokumentowane, wersjonowane dane, które są Twoje, a nie kształt zmieniający się pod Tobą.

Tło projektowe: Open core, bez uwięzienia u dostawcy.

KlasaOdpowiedzialność
InteropResultInterfaceWspólny kontrakt serializacji.
DocumentInfo, PageInfo, BoundingBoxWspólne DTO dokumentu/strony.
ExtractedText, ExtractedPage, TextBlockDTO ekstrakcji tekstu.
DocumentSegmentation, SegmentDTO segmentacji dokumentu.
FormData, FormFieldDTO danych formularza.
SchemaLockStrażnik dryfu schematu w CI.
$json = $result->toJson(JSON_PRETTY_PRINT);
$array = $result->toArray(); // includes 'schema_version'
use NextPDF\Pro\Interop\V1\SchemaLock;
if (! SchemaLock::verify()) {
throw new RuntimeException('Interop schema drift detected — version bump required.');
}
$payload = $result->toArray();
$httpClient->postJson($endpoint, $payload);
  • toArray() zawsze zawiera schema_version; konsumenci w dół powinni się na nim rozgałęziać.
  • SchemaLock::verify() zwraca false, jeśli plik schematu jest brakujący lub zmodyfikowany.
  • DTO to widoki tylko do odczytu; nie uruchamiają ponownie analizy.

Serializacja jest liniowa względem rozmiaru grafu wyniku.

DTO niosą wyłącznie wyjście analizy, którym je wypełnisz. Podczas serializacji nie zachodzi żadne wejście/wyjście systemu plików ani sieci.

Interop definiuje wersjonowany schemat należący do NextPDF; nie implementuje zewnętrznego standardu.

  • Każde DTO wyniku implementuje InteropResultInterface i serializuje się do tablicy bezpiecznej dla JSON, która zawsze niesie klucz schema_version, oraz do ciągu JSON.
  • DTO wyników (DocumentInfo, PageInfo, BoundingBox, ExtractedText/ExtractedPage/TextBlock, DocumentSegmentation/Segment, FormData/FormField) to niezmienialne widoki tylko do odczytu; nie uruchamiają ponownie analizy.
  • SchemaLock::verify() przechowuje SHA-256 zamrożonego schematu i zwraca false, jeśli plik schematu jest brakujący lub zmodyfikowany, dzięki czemu kontrakt sieciowy nie może po cichu dryfować.
  • Powierzchnia jest jawnie wersjonowana (SCHEMA_VERSION): zmiany addytywne podbijają schemat; zmiany łamiące wymagają nowej wersji głównej.
  • Podczas serializacji nie zachodzi żadne wejście/wyjście systemu plików ani sieci.

Enterprise nie zmienia zachowania Interop. Enterprise dodaje funkcje wyższego poziomu udokumentowane osobno; nie są one wymagane do korzystania z wersjonowanych DTO wyników.

Nie istnieje odpowiednik w Core dla zablokowanych schematem, wersjonowanych DTO wyników. To dodatek Pro.

Ta strona dokumentuje wyłącznie zachowanie obserwowalne zewnętrznie oraz obsługiwaną publiczną powierzchnię API. Wewnętrzne ścieżki przestrzeni nazw, klasy pomocnicze, tabele mechanizmów, nazwy plików runbooków oraz prefiksy zgłoszeń są poza zakresem.