2012-10-13 3 views
0

J'utilise actuellement une macro Excel (même si je passerai à VB.NET si nécessaire) pour faire une boucle sur tout le texte d'un PDF et remplir une tableau avec certaines parties du texte dans le PDF (via Adobe SDK et getPageNthWord). Cette partie fonctionne très bien, mais maintenant ce que je veux va un peu plus loin.Extrait capture d'écran ou image d'une portion de PDF en utilisant VBA ou VB et Adobe SDK

Il y a certaines parties du PDF où le simple fait de saisir le texte ne donne pas une image complète, et j'aimerais voir ce que je peux obtenir de plus. C'est exactement la capture d'écran ou fragment de code que je suis en train de faire:

enter image description here

Alors, je sais que je pourrais utiliser getPageNthWordQuads pour trouver les coordonnées pour les mots « Avertissement de conformité » et je pouvais trouver un moyen de trouve en bas à droite de l'écran, mais mon problème commence ici. Après avoir obtenu ces coordonnées, que ferais-je avec eux? Puis-je zoomer sur le PDF pour ne voir que cette partie et ensuite prendre une capture d'écran? J'ai déjà le code pour une capture d'écran de la fenêtre active, mais je ne sais pas comment faire défiler ou zoomer sur un PDF.

Toute aide serait grandement appréciée. Une nouvelle approche serait la bienvenue. Merci!

Répondre

0

Il y a probablement un certain nombre d'approches qui fonctionneraient - je ne connais pas assez votre environnement/vos contraintes pour savoir avec certitude ce qui fonctionnerait le mieux. Je suppose que vous parlez à Acrobat via OLE ici.

1) Vous pouvez ouvrir une fenêtre, obtenir son AVPageView et lui demander de zoomer et de vous déplacer là où vous le souhaitez.

2) Vous pouvez ouvrir un document PDF dans l'une de vos propres fenêtres en utilisant OpenInWindowEx, puis récupérer le contenu de cette fenêtre (l'avantage étant que cette fenêtre pourrait être hors écran).

3) Vous pouvez utiliser la méthode DrawEx (dans AcroExch.PDPage) pour restituer une partie spécifique d'une page dans votre propre fenêtre, puis la traiter.

+0

hmm, pourriez-vous fournir un exemple de code pour cela? (VB ou VBA?) Ou connaissez-vous un endroit où vous pourriez me lier? –

+0

Pas d'échantillons J'ai peur - je fais mon travail sur Mac ces jours-ci. Mais le SDK Adobe Acrobat contient toute la documentation (et peut en avoir des exemples lorsque vous téléchargez le SDK Windows): http://www.adobe.com/devnet/acrobat.html –

Questions connexes