J'utilise iText pour recréer la fonction Tag Tree d'Acrobat.Obtenir un contenu marqué à l'aide du contenu MCID
Jusqu'à présent, j'ai réussi à obtenir la structure de l'étiquette.
La dernière chose que j'essaie de comprendre est comment obtenir & décoder le "contenu marqué" pour une balise du flux de contenu.
Modifier: but ajouté
Le but de cette question est de savoir comment accéder aux flux de contenu, avec un mcid et décoder le contenu.
Edit 2: Ajouter une référence iText RUPS
Ci-dessous l'image montre où je suis arrivé dans l'arbre, les points de ligne rouge à un MCID, je suis en train d'obtenir son contenu.
Edit 3: ajouter du code actuel qui construit un arbre
private void manipulate(PdfDictionary element, ItemCollection items)
{
if (element == null)
{
return;
}
ICollection<PdfName> val = element.KeySet();
PdfObject tagName = element.Get(PdfName.S);
PdfObject elementType = element.Get(PdfName.Type);
string tn = "";
if (tagName != null)
{
tn = ((PdfName)tagName).GetValue();
}
else
{
tn = ((PdfName)elementType).GetValue();
}
TreeViewItem tvI = new TreeViewItem() { Header = tn, IsExpanded = true };
items.Add(tvI);
PdfArray kids = element.GetAsArray(PdfName.K);
if (kids == null)
{
return;
}
for (int i = 0; i < kids.Size(); i++)
{
PdfDictionary child = kids.GetAsDictionary(i); //Code change required here to detect MCID & get content, this line returns null when child is a MCID
manipulate(child, tvI.Items);
}
}
}
Edit 4: La raison pour cela est de recréer le "Tag Tree" fonction d'Acrobat.
Merci pour votre suggestion. Mais j'aimerais quand même savoir comment accéder aux flux de contenu et décoder leur contenu. – PrivatMamtora
Avez-vous déjà entendu parler de iText RUPS? –
Oui, je l'ai utilisé comme un outil de débogage. Voir éditer. – PrivatMamtora