texto saber quitar propietario propiedades online nombre love limite editar dividir como borrar becypdfmetaedit autor archivo pdf batch-file cmd

saber - quitar propiedades de un archivo pdf online



Obtenga el número de páginas en un pdf usando un archivo por lotes cmd (5)

Alternativamente, puede usar el comando, que devuelve solo el número:

pdfinfo "${PDFFILE}" | grep Pages | sed ''s/[^0-9]*//''

Necesitará el paquete xpdf (generalmente preinstalado en muchas distribuciones):

http://www.foolabs.com/xpdf/download.html

Puedo ver que hay muchas preguntas para obtener el número de páginas en un pdf con C, PHP y otros, pero me pregunto con un archivo por lotes o cmd ¿hay una manera simple de obtener el número de páginas?


Como solicitó un "archivo por lotes", debo suponer que solo desea una solución basada en Windows. Pero, en caso de que Mac OS X sea una opción, aquí hay algo que podría ser útil. Si tiene los PDF en una Mac, en una unidad indexada por Spotlight (valor predeterminado), el siguiente comando devolverá el número de páginas sin dependencias externas:

mdls -name kMDItemNumberOfPages POSIX_PATH_OF_PDF_FILE

Fuente: MacScripter.net - http://macscripter.net/viewtopic.php?id=32381


Sin herramientas externas (guarde el script abajo como .bat ):

@if (@X)==(@Y) @end /* JScript comment @echo off cscript //E:JScript //nologo "%~f0" %* exit /b 0 @if (@X)==(@Y) @end JScript comment */ var args=WScript.Arguments; var filename=args.Item(0); var fSize=0; var inTag=false; var tempString=""; var pages=""; function getChars(fPath) { var ado = WScript.CreateObject("ADODB.Stream"); ado.Type = 2; // adTypeText = 2 ado.CharSet = "iso-8859-1"; ado.Open(); ado.LoadFromFile(fPath); var fs = new ActiveXObject("Scripting.FileSystemObject"); fSize = (fs.getFile(fPath)).size; var fBytes = ado.ReadText(fSize); var fChars=fBytes.split(''''); ado.Close(); return fChars; } function checkTag(tempString) { if (tempString.length == 0 ) { return; } if (tempString.toLowerCase().indexOf("/count") == -1) { return; } if (tempString.toLowerCase().indexOf("/type") == -1) { return; } if (tempString.toLowerCase().indexOf("/pages") == -1) { return; } if (tempString.toLowerCase().indexOf("/parent") > -1) { return; } var elements=tempString.split("/"); for (i = 0;i < elements.length;i++) { if (elements[i].toLowerCase().indexOf("count") > -1) { pages=elements[i].split(" ")[1]; } } } function getPages(fPath) { var fChars = getChars(fPath); for (i=0;i<fSize-1;i++) { if ( fChars[i] == "<" && fChars[i+1] == "<" ) { inTag = true; continue; } if (inTag && fChars[i] == "<") { continue; } if ( inTag && fChars[i] == ">" && fChars[i+1] == ">" ) { inTag = false; checkTag(tempString); if (pages != "" ) { return; } tempString=""; } if (inTag) { if (fChars[i] != ''/n'' && fChars[i] != ''/r'') { tempString += fChars[i]; } } } } getPages(filename); if (pages == "") { WScript.Echo("1"); } else { WScript.Echo(pages); }

Lleva la ruta al archivo .pdf y simplemente imprime el número de páginas. No es muy rápido, ya que lee el símbolo pdf por símbolo, pero podría optimizarse.


QPDF es una alternativa ligera a PDFtk (que requiere Java runtime) y pdfinfo (una herramienta bastante tonta).

qpdf --show-npages file.pdf

Imprime solo el número de páginas, sin necesidad de procesamiento posterior.

Existen paquetes para la mayoría de las distribuciones de Linux, generalmente llamadas simplemente qpdf . Páginas como binarios de host de Softpedia para Windows . El código fuente puede descargarse de SourceForge o del repositorio oficial de GitHub .

La opción --show-npages se agregó en una versión posterior a 4.1.0, en commit 91367239fd55f7c4996ed6158405ea10573ae3cb . Para ser compatible con la versión 4.1.0 y anterior , puede volcar información básica sobre cada página y contar las páginas. En Linux y OS X:

qpdf --show-pages file.pdf | grep -c ^page

En Windows, debe usar findstr y find lugar:

qpdf --show-pages file.pdf | findstr ^page | find /c /v ""


Usando pdftk pdftk my.pdf dump_data | grep NumberOfPages pdftk my.pdf dump_data | grep NumberOfPages hace el truco.