Les opérateurs de contenu Stream
Ce guide montre comment accéder et manipuler les opérateurs de flux de contenu PDF en utilisant ContentStreamParser et ContentStreamBuilder dans Aspose.PDF FOSS pour Java. Vous apprendrez à lire les bytes de contenu sur la page et utiliser le parser pour inspecter l’impression. Commande de .
Résultats de contenu
Le contenu de la page PDF est encodé comme une séquence d’opérateurs dans un flux de contenus. Page Il fournit accès à ses opérateurs de contenu par le biais du getContents() propriété .
ContentStreamParser
ContentStreamParser parse les bytes de flux de contenu brut en objets d’opérateur, permettant l’inspection programmatique des commandes de dessin de page. passer les bytes crus à partir de page.getContents().toByteArray() Pour le constructeur de pars :
try (Document doc = new Document("input.pdf")) {
PageCollection pages = doc.getPages();
Page page = pages.get(1);
byte[] contentBytes = page.getContents().toByteArray();
ContentStreamParser parser = new ContentStreamParser(contentBytes);
// Iterate over parsed operators
}ContentStreamBuilder
ContentStreamBuilder Créer de nouveaux flux de contenu pour intégrer dans un Page. Utiliser ContentStreamBuilder Quand on construit un contenu de page, c’est plus programmable que modifier un courant existant. Après avoir construit le couran, l’attribuer à la Page et sauvegarde le document.
Le référencement d’opérateur
Les opérateurs de flux de contenu PDF sont définis dans la norme ISO 32000-1:2008, Table A.1. Les opérateurs sont des opéraires (BT, ET, Tf, TjLes opérateurs graphiques d’Etat (q, Q, cmLes opérateurs de route (m, l, h, f, S).
Les opérateurs de flux de contenu suivent la spécification PDF (ISO 32000-1:2008, §8). Utiliser ContentStreamParser pour s’attendre à l’intermédiaire des opérateurs dans un courant existant.
Accès à des contenus de page riche
Pour lire les bits crus d’un flux de contenu de page, appelez-vous page.getContents().toByteArray(). Les bytes peuvent ensuite être vérifiés, décodés ou transférés à ContentStreamParser:
try (Document doc = new Document("input.pdf")) {
PageCollection pages = doc.getPages();
Page page = pages.get(1);
byte[] contentBytes = page.getContents().toByteArray();
System.out.println("Content stream size: " + contentBytes.length + " bytes");
}