Il existe certains outils qui permettent d'extraire toute la partie texte d'un fichier PDF afin d'indexer le document en texte intégral. Qu'est-ce que j'ai besoin est un moyen de rechercher certaines chaînes et, si elles ont été trouvées dans le fichier PDF, retourner le numéro de la page?Rechercher par programme du texte dans un fichier PDF et indiquer le numéro de page?
5
A
Répondre
2
Cet exemple utilise la bibliothèque inclus avec Adobe Reader et vient de http://www.dotnetspider.com/resources/5040-Get-PDF-Page-Number.aspx:
using Acrobat;
using AFORMAUTLib;
private void pdfRandD(string fPath)
{
AcroPDDocClass objPages = new AcroPDDocClass();
objPages.Open(fPath);
long TotalPDFPages = objPages.GetNumPages();
objPages.Close();
AcroAVDocClass avDoc = new AcroAVDocClass();
avDoc.Open(fPath, "Title");
IAFormApp formApp = new AFormAppClass();
IFields myFields = (IFields)formApp.Fields;
string searchWord = "Search String";
string k = "";
StreamWriter sw = new
StreamWriter(@"D:\KCG_FileChecker_Inputs\MAC\pdf\0230_525490_23_cha17.txt", false);
for (int p = 0; p < TotalPDFPages; p++)
{
int numWords = int.Parse(myFields.ExecuteThisJavascript("event.value=this.getPageNumWords(" + p + ");"));
k = "";
for (int i = 0; i < numWords; i++)
{
string chkWord = myFields.ExecuteThisJavascript("event.value=this.getPageNthWord(" + p + "," + i + ", true);");
k = k + " " + chkWord;
}
if(k.Trim().Contains(searchWord))
{
int pNum = int.Parse(myFields.ExecuteThisJavascript("event.value=this.getPageLabel(" + p + ",true);"));
sw.WriteLine("The Word " + searchWord + " is exists in " + pNum);
}
}
sw.Close();
MessageBox.Show("Process completed");
}
2
Vous pouvez utiliser Docotic.Pdf library pour rechercher du texte dans des fichiers PDF.
Après l'échantillon montre comment trouver des chaînes spécifiées dans un fichier PDF et les numéros de page correspondants:
static void searchForTextStrings()
{
string path = "";
string[] stringsToFind = new string[] { };
using (PdfDocument pdf = new PdfDocument(path))
{
for (int i = 0; i < pdf.Pages.Count; i++)
{
string pageText = pdf.Pages[i].GetText();
foreach (string s in stringsToFind)
{
int index = pageText.IndexOf(s, 0, StringComparison.CurrentCultureIgnoreCase);
if (index != -1)
Console.WriteLine("'{0}' found on page {1}", s, i);
}
}
}
}
Une recherche sensible à la casse peut être réalisée si vous supprimez troisième argument de la méthode IndexOf. Clause de non-responsabilité: Je travaille pour Bit Miracle, vendeur de la bibliothèque.
Questions connexes
- 1. Position du texte PDF, marge gauche de la page
- 2. Utiliser Acrobat standard pour combiner par programme un fichier PDF?
- 3. Comment exporter par programme un fichier PDF dans un fichier dans VB.NET
- 4. comment écrire dans un fichier texte par programme C
- 5. comment attacher le fichier pdf qui est présent dans le fichier programme par courrier
- 6. Comment rechercher et remplacer du texte dans un fichier à partir d'un script shell?
- 7. ouvrir la page du pdf par le biais xml
- 8. Parse Pdf Fichier et écrire le contenu dans un fichier texte en utilisant java
- 9. Rechercher et remplacer par un fichier de commandes
- 10. Rechercher du texte dans des fichiers (C#)
- 11. Comment puis-je remplacer une ligne spécifique par un numéro de ligne dans un fichier texte?
- 12. Rechercher le contenu du fichier sur l'iphone
- 13. Pour supprimer un espace entre dans un fichier PDF par un code de niveau inférieur
- 14. Comment sauvegarder du texte en php en fichier pdf?
- 15. Texte d'ouverture de navigateur/fichier XML dans le programme externe
- 16. Videz le texte FileUpload par programme
- 17. Le fichier ne commence pas par '% PDF-'
- 18. Créer un fichier PDF à remplir à partir du PDF
- 19. Extraction de texte d'un fichier PDF
- 20. Comment obtenir l'orientation du texte d'une chaîne de texte dans une page PDF en utilisant CAM :: PDF?
- 21. Est-il possible de rechercher par programme quel processus verrouille un fichier sur un réseau
- 22. Texte dans le rendu PDF du rapport Reporting Services "surimpressions"
- 23. C# - Placer un PDF dans un autre fichier PDF
- 24. Supprimer les espaces du numéro dans le texte en VB.NET
- 25. wxPython: comment rechercher du texte dans un TextCtrl?
- 26. Comment définir le nom du fichier lors de la diffusion d'un fichier PDF dans un navigateur?
- 27. fusionner par programme le fichier .reg dans le registre win32
- 28. zoom du fichier pdf
- 29. Utilisez MS Word Macro pour rechercher un fichier texte
- 30. Comment afficher le numéro de page Wordpress et le nombre total de pages (par exemple, page 1 de 3)
Merci pour le code! Cependant, cet exemple nécessite une installation d'Adobe Professional. Pour des raisons de redevances, je préférerais avoir un composant pour le faire. – splattne