Débogage PDF pour l'erreur
Je suis la création de fichiers PDF à l'aide PDFClown bibliothèque java.
Parfois, lors de l'ouverture de ces fichiers avec Adobe Acrobat Reader-je obtenir le fameux message d'erreur:
"Il y a une erreur sur cette page. Acrobat ne peut pas afficher la page correctement. Veuillez contacter la personne qui a créé le document PDF pour corriger le problème."
L'erreur affiche lors de la lecture (avec Adobe) le fichier joint uniquement lorsque le défilement vers le bas à la 8 ième page, puis défiler jusqu'à 3'td page. Sinon, le Zoom à 33,3% produira également le message.
Juste pour le record, Foxit reader lit le fichier parfaitement, ainsi que d'autres lecteurs de PDF, comme les navigateurs.
Mes questions sont:
-
Quel est le problème avec mon fichier?? (fichier est joint)
-
Comment puis-je savoir quel est le problème avec elle? est-il un outil qui vous dit où est ce que l'erreur, le mensonge?
Merci!
- Adobe Acrobat a certains profils de profils qui peuvent y aider.
- J'ai essayé de vérifier avec le contrôle en amont, et pour chaque case, il m'a donné "Une erreur s'est produite lors du traitement d'un flux de contenu. Impossible d'analyser le fichier PDF.". S'il vous plaît aider...
- Adobe Acrobat 9.5 contrôle en amont échoue sur ce document... 😉
- Même problème ici et de contrôle en amont échoue dans mon cas aussi... 🙁 Donc, je suppose qu'il n'existe aucun outil qui vraiment vous indique où l'erreur est... Bien fait Adobe. Inutile, comme toujours...
Vous devez vous connecter pour publier un commentaire.
Ok, ce n'était pas facile -
En raison d'un bogue dans PDFClown le principal de mon flux d'informations dans le fichier PDF de la page a été endommagé.
Après c'est la fin, il avait une copie d'un passé instance.
Cela a provoqué un texte partiel de la section sans le départ de la commande "BT" - qui, à gauche, un seul "ET" sans "BT" à la fin du flux.
une fois que j'ai corrigé cela, il a couru un grand.
Merci à vous tous pour votre aide.
J'aurais beaucoup plus de mal à déboguer sans l'outil de RUPS qui @Bruno suggéré.
edit:
Le bug a été dans la mémoire Tampon.java:clone() (ligne 217)
au lieu de la ligne:
clone.append(data);
doit être:
clone.append(data, 0, cette.la longueur);
Sans cette correction des clones de l'ensemble des données de la mémoire tampon, et l'ensemble de la cloné Tampon de longueur pour les données[].longueur. Ceci est très problématique si la mémoire Tampon.la longueur est inférieure à celle des données[].longueur.
Le résultat dans mon cas est que, dans la fin du flux, il y avait des ordures.
Bien, je reçois plus facile, j'ai simplement ouvrir le fichier PDF et faites défiler la liste en utilisant les touches de curseur. Dès que les 2 premiers cm de la page 3 apparaissent, le message s'affiche.
Le contenu des pages 1 et 2 regarder ok, alors regardons le contenu de la page 3.
Mon initiale de l'attribution de la question de l'utilisation de texte opérations spécifiques (en particulier Tf et Tw) à l'extérieur d'un objet texte a été mal comme Stefano Chizzolini souligné: un texte opérations liées à la sont en effet autorisé à l'extérieur des objets de texte, à savoir le texte de l'état des opérations, cf. la figure 9 de la spécification PDF:
Donc, tout en étant moins fréquent, le texte de l'état des opérations à la page niveau de description sont complètement ok.
Après ma fausse tentative d'expliquer la question, OP sa propre réponse a indiqué que le
Un ET sans l'accord préalable de BT serait en effet une erreur, et très probablement il serait accompagné par des opérations au mauvais niveau... l'Inspection du flux de contenu de la page (la page de ce numéro), cependant, je ne pouvais pas trouver tout inégalée ET. Dans le cadre de cette inspection, cependant, j'ai découvert que le flux de contenu contient plus de 2000 de fuite 0 octets! Adobe Reader ne semble pas être en mesure de faire face à ces 0 octets.
Le bug de l'OP trouvé, peut expliquer le problème:
De fuite 0 octets peut être un effet du tampon de copie bug.
En outre des symptômes comme l'a constaté par les OP (Après c'est la fin, il avait une copie d'un passé instance de) peut aussi être l'effet d'un tel bug. Donc je suppose que l'OP trouvé ces symptômes sur une autre page, et non la page 3, mais la fixation du bug guéri tous les symptômes.
Il y a la syntaxe PDF dames, par exemple, le contrôle en amont de l'outil inclus dans Adobe Acrobat. mais même cela échoue sur votre fichier.
Donc, essentiellement, vous devez extraire le contenu de la page (à l'aide d'un PDF navigateur, par exemple,RUPS) et vérifier manuellement avec la spécification PDF sur l'autre écran.
le poste de général sur le débogage pdf aurait été aussi utile que rups /pdfstreamdump etc est ce qu'il Comment déboguer des fichiers PDF?