2011-01-14 22 views

Odpowiedz

16

convert narzędzie (lub magicksince version 7) od ImageMagick wiązki mogą to zrobić (i dużo więcej).

W najprostszej formie, to tylko

convert myfile.pdf myfile.png 

lub

magick myfile.pdf myfile.png 
+1

Aby rozwinąć na tej odpowiedzi, należy użyć http://www.csharp-station.com/HowTo/ProcessStart.aspx –

+1

Próbowałem ImageMagick i to działa bardzo dobrze w konwersji obrazu. Aby pracować z pdf, będziesz musiał zainstalować GhostScript również. http://sourceforge.net/projects/ghostscript/ –

+0

Próbowałem tego, ale z jakiegoś powodu dostałem tylko białą stronę z czarną linią pośrodku i jakiś losowy tekst na boku .. – Martin

5

Questio n jest dość stary, ale ostatnio znalazłem to rozwiązanie, które zadziałało dla mnie: https://github.com/jhabjan/Ghostscript.NET. Jest również dostępny jako pobieranie z nugetem.

Oto przykładowy kod do konwertowania wszystkich stron PDF do PNG: Linia narzędzie

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(); 
    } 
+1

Ostrzeżenie: Nie zapomnij wywołać funkcji _rasterizer.Close() na końcu. (Jest to ważne i unikaj wyjątku na wypadek, gdybyś użył tego kodu w pętli). – bau

+0

jest alternatywą dla "GetPage", która pozwoli uzyskać cały dokument, który znasz? – rogerdeuce

0

2JPEG komenda może to zrobić, jak:

2jpeg.exe -src „C: \ W \ *. pdf”-dst«C: \ Out»

+0

Przepraszamy, ale nie działa z dużą ilością błędów. – Turtle

+0

Witaj, Turtle, Czy możesz mi powiedzieć coś więcej o błędach 2JPEG? –

7

to stara sprawa, ale jako odpowiedź Ghostscripta brakuje i nie ma wskazówkę dla wielostronicowego eksportu PDF jeszcze myślę dodanie inny wariant jest w porządku. Opis

gs -dBATCH -dNOPAUSE -sDEVICE=pnggray -r300 -dUseCropBox -sOutputFile=item-%03d.png examples.pdf 

Opcje:

  • dBatch i dNOPAUSE tylko powiedzieć gs uruchomić w trybie wsadowym, co oznacza mniej lub więcej nie będzie zadawać pytania. Parametry te są również ważne, jeśli chcesz uruchomić polecenie w skrypcie basha.
  • sDEVICE mówi gs jaki format wyjściowy wytworzyć. pnggray jest dla skali w skali szarości, png16m dla 24-bitowego koloru RGB. Jeśli nalegasz na tworzenie Jpegs, użyj -sDEVICE=jpeg do tworzenia kolorowych plików JPEG.Użyj parametru -dJPEGQ=N (N jest liczbą całkowitą od 0 do 100, domyślnie 75) , aby kontrolować jakość Jpgeg.
  • -r300 ustawia rozdzielczość skanowania na 300dpi. Jeśli wolisz mniejsze rozmiary wyjściowe , użyj -r70 lub jeśli wprowadzisz pdf ma wysoką wartość Resoultion użyj -r600. Jeśli masz plik PDF z rozdzielczością 300dpi i podasz -r600, twoje obrazy zostaną przeskalowane.
  • -dUseCropBox powiedz gs, aby użyć CropBox, jeśli zdefiniowano. CropBox to określa obszar zainteresowania na stronie. Jeśli masz pdf z dużym białym marginesem , a nie chcesz tego marginesu na swoim wyjściu, ta opcja może pomóc.
  • -sOutputFile definiuje nazwę pliku wyjściowego. Część% 03d.png mówi gs, aby dołączyć licznik dla wielu plików. Dwukrotnie strona pdf spowodowałaby utworzenie dwóch plików o nazwach item-001.png i item-002.png.
  • Ostatnim (nienazwany parametrem jest plik wejściowy.)

Dostępność: Polecenie convert z ImageMagick używa gs dowodzić wewnętrznie. Jeśli możesz przekonwertować plik pdf na imagemagick, masz już zainstalowane gs.

Instalacja ghostscript:

RHEL:

yum install ghostscript 

SLES:

zypper install ghostscript 

Debiana/Ubuntu:

sudo apt-get install ghostscript 

Windows:

można znaleźć programy dla Windows pod http://www.ghostscript.com/download/gsdnld.html

Powiązane problemy