J'ai besoin de convertir un fichier PDF en images. J'ai utilisé à des fins de test "Total PDF Converter" qui offre une ligne de commande, mais c'est un shareware et je dois trouver une alternative gratuite.
Est-ce que quelqu'un connaît un tel outil ou peut-être même une bibliothèque C # gratuite?
L'outil convert
(ou magick
depuis la version 7 ) de ImageMagick bundle peut le faire (et beaucoup plus).
Dans sa forme la plus simple, c'est juste
convert myfile.pdf myfile.png
ou
magick myfile.pdf myfile.png
C'est une vieille question, mais comme une réponse GhostScript est manquante et qu'il n'y a pas d'indice pour l'exportation multipage PDF, je pense que l'ajout d'une autre variante est correct.
gs -dBATCH -dNOPAUSE -sDEVICE=pnggray -r300 -dUseCropBox -sOutputFile=item-%03d.png examples.pdf
Description des options:
dBatch
et dNOPAUSE
il suffit de dire à gs de fonctionner en mode batch, ce qui signifie plus ou moins, il ne posera aucune question. Ces paramètres sont également importants pour que vous puissiez exécuter la commande dans un script bash.sDEVICE
indique à gs le format de sortie à produire. pnggray
est pour niveaux de gris, png16m
pour une couleur RVB 24 bits. Si vous insistez pour créer Les fichiers JPEG utilisent -sDEVICE=jpeg
pour produire des fichiers JPEG couleur. Utilisez le paramètre -dJPEGQ=N
(N est un entier compris entre 0 et 100; le paramètre par défaut est 75) Pour contrôler la qualité Jpgeg.-r300
définit la résolution de numérisation sur 300 ppp. Si vous préférez une taille de sortie plus petite, utilisez -r70
ou si vous saisissez pdf, utilisez une résolution élevée -r600
. Si vous avez un PDF avec 300 dpi et spécifiez -r600, vos images seront redimensionnées.-dUseCropBox
indique à gs d'utiliser une CropBox si elle est définie. Un CropBox est Spécifie une zone d'intérêt sur une page. Si vous avez un pdf avec une marge blanche importante Et que vous ne souhaitez pas que cette marge apparaisse sur votre sortie, présentez-la Option pourrait aider.-sOutputFile
définit le nom du fichier de sortie. La partie% 03d.png Indique à gs d'inclure un compteur pour plusieurs fichiers. Un fichier PDF Sur deux pages donnerait deux fichiers nommés item-001.png et item-002.png.Disponibilité: La commande convert de imagemagick utilise la commande gs en interne. Si vous pouvez convertir un fichier PDF avec imagemagick, vous avez déjà installé gs.
Installer ghostscript:
RHEL:
yum install ghostscript
SLES:
zypper install ghostscript
Debian/Ubuntu:
Sudo apt-get install ghostscript
Les fenêtres:
Vous pouvez trouver les fichiers binaires Windows sous http://www.ghostscript.com/download/gsdnld.html
La question est assez ancienne, mais j'ai récemment trouvé cette solution qui fonctionnait pour moi: https://github.com/jhabjan/Ghostscript.NET . Il est également disponible en téléchargement sous forme de nuget.
Voici l'exemple de code permettant de convertir toutes les pages PDF en images png:
private static void Test()
{
var localGhostscriptDll = Path.Combine(Environment.CurrentDirectory, "gsdll64.dll");
var localDllInfo = new GhostscriptVersionInfo(localGhostscriptDll);
int desired_x_dpi = 96;
int desired_y_dpi = 96;
string inputPdfPath = "test.pdf";
string outputPath = Environment.CurrentDirectory;
GhostscriptRasterizer _rasterizer = new GhostscriptRasterizer();
_rasterizer.Open(inputPdfPath, localDllInfo, false);
for (int pageNumber = 1; pageNumber <= _rasterizer.PageCount; pageNumber++)
{
string pageFilePath = Path.Combine(outputPath, "Page-" + pageNumber.ToString() + ".png");
Image img = _rasterizer.GetPage(desired_x_dpi, desired_y_dpi, pageNumber);
img.Save(pageFilePath, ImageFormat.Png);
}
_rasterizer.Close();
}
Vous voudrez peut-être vérifier cette solution gratuite
http://www.codeproject.com/Articles/32274/How-To-Convert-PDF-to-Image-Using-Ghostscript-API
Il convertit facilement les images PDF en fichiers (fichier unique ou fichiers multiples) Est open source et utilise ghostscript (téléchargement gratuit)
Exemple d'utilisation:
converter = new PDFConverter();
converter.JPEGQuality = 90;
converter.OutputFormat = "jpg";
string output = "output.jpg";
converter.Convert("input.pdf", output);
Vous devriez utiliser iText Sharp. C'est un port d'un projet Java open source pour manipuler des PDF. http://sourceforge.net/projects/itextsharp/
2JPEG outil de ligne de commande peut le faire, comme:
2jpeg.exe -src "C:\In\*. Pdf" -dst "C:\Out"