2010-10-05 12 views

Répondre

3

un coup d'oeil à ceci: http://www.freevbcode.com/ShowCode.asp?ID=8153
Modifier: fonctionne pas, peut-être trop vieux
trouvé ceci:

public static int GetNoOfPagesPDF(string FileName) 
     { 
      int result = 0; 
      FileStream fs = new FileStream(FileName, FileMode.Open, FileAccess.Read); 
      StreamReader r = new StreamReader(fs); 
      string pdfText = r.ReadToEnd(); 
      System.Text.RegularExpressions.Regex regx = new Regex(@"/Type\s*/Page[^s]"); 
      System.Text.RegularExpressions.MatchCollection matches = regx.Matches(pdfText); 
      result = matches.Count; 
      return result; 
     } 

Ps: testé! Ça marche. see here source

+1

FYI - PDF peut être écrit de sorte que vous puissiez ajouter des modifications au document existant, donc si vous "supprimez" des pages en ajoutant un nouveau catalogue avec moins de pages (en laissant les anciennes pages en place), cette solution produira résultats. – plinth

+0

Le code ci-dessus n'a pas fonctionné pour moi, renvoyant plus que le nombre correct de pages. Mais cela m'a fait réaliser qu'une grande partie d'un pdf est du texte et que j'ai pu le trouver avec Regex (match non global) '/ Type/Pages \ nCount ([0-9] +)'. – ErikE

1

[Edit: en fonction de la question éditée]

Il est possible en lisant comme fichier texte et une analyse minimale.

Si vous lisez le pdf vous-même alors vous devrez faire l'analyse. Chaque page d'un PDF est représentée par un objet page.

Ce qui suit fournit une compréhension de la spécification pdf en abrégé pour les pages et le lien vers la spécification pdf.

+0

Préférant la réponse de Pinichi car il a un code de travail. Voter votre réponse parce que c'est très utile. –

Questions connexes