Bonjour,
Je réalise un outil pour comparer 2 documents PDF. Je dois en fait comparer un pdf témoin et un pdf générer et indiquer les différences. par xemple qu'un bloque de text n'est pas à la bonne position, ou qu'une image n'est pas à la bonne taille. J'ai d'abord essayé avec ABCPdf, mais je n'air réussi a rien. J'ai essayé avec iTextSharp, j'arrive à aller un peu plus loins, sans toutefois réussir à récupérer les données que je veux.
ci dessous un test que j'ai fait pour essayer de récupérer les données de la première image de la première page de mon document (histoire de voir si c'est possible).
Document doc = new Document();
J'arrive à récupérer le subtype, mais toutes les autres valeurs me retournent null. Comment je peux récupérer au moins les coordonnées X et Y d'une image ou d'un bloque de texte ? (que ce soit avec iTextSharp ou ABCpdf ou autre peu m'importe )
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21 PdfReader reader = new PdfReader(@"C:\tmp\PDFFlattener\Input\Interior_30087_068x1XWX6516_M_210x297_FLA_68_1_5873301420.pdf"); for (int page = 1; page <= reader.NumberOfPages; page++) { Console.WriteLine(string.Concat("\r\n\r\n######## PAGE ", page, "/", reader.NumberOfPages, " ########\r\n")); var currentPage = reader.GetPageN(page); PdfDictionary pageDico = currentPage.GetAsDict(PdfName.RESOURCES); PdfDictionary objectDico = pageDico.GetAsDict(PdfName.XOBJECT); foreach (var item in objectDico) { PdfName imgRef = item.Key; PRStream stream = (PRStream)objectDico.GetAsStream(imgRef); PdfName subType = stream.GetAsName(PdfName.SUBTYPE); PdfName coords = stream.GetAsName(PdfName.COORDS); PdfName width = stream.GetAsName(PdfName.WIDTH); PdfName xyz = stream.GetAsName(PdfName.XYZ); } }
merci de m'avoir lu,
Partager