2015-05-26 29 views
6

Ciao, sto usando itextSharp per tutti i progetti relativi al pdf in dot.net. Mi sono imbattuto in un requisito in cui ho bisogno di convertire pagine PDF in immagini. Non sono riuscito a trovare alcun campione di una cosa del genere. Ho trovato che un altro strumento ghostscript è in grado di farlo il problema con il fatto che sono su un hosting condiviso & Non penso che ghostscript verrà eseguito sul server come nel mio computer locale ho dovuto copiare manualmente dll di script fantasma nella cartella system32 che non è possibile in un hosting condiviso.È possibile convertire la pagina PDF in Immagine usando itextSharp?

+0

Non è possibile convertire pagina PDF to Image utilizzando iTextSharp .. È necessario utilizzare qualche libreria java script ... Si può dare una prova con Phantomjs .. è buono per questo scopo, come ho usato esso. – immirza

+0

La domanda non è chiara, quindi suggerirei di riformularlo in qualcosa che sia effettivamente rispondente. Se hai solo bisogno delle DLL GhostScript, potresti scoprire che copiarle nella cartella 'bin' sarà sufficiente per accedere alle loro funzionalità sul tuo sistema ospitato. –

+0

consultare il collegamento sotto http://stackoverflow.com/questions/23905169/how-to-convert-pdf-files-to-image – JDK

risposta

11

Ok ho cercato dappertutto e ho scoperto che c'è un pacchetto nuget per Ghost Script, quindi il problema per me è stato risolto andando alla console del gestore pacchetti e aggiungendo lo script ghost a un nuovo progetto (ho creato un nuovo progetto dal vecchio uno aveva tutti i tipi di riferimento per win32 ghostscript dlls per "PM> Install-Package Ghostscript.NET". Quindi la risposta alla mia domanda è: 1.> itextSharp non può convertire direttamente le pagine PDF in immagine. 2.> "Ghostscript.NET 1.2.0" lo fa abbastanza facilmente. Di seguito è riportato un esempio di codice.

public void LoadImage(string InputPDFFile,int PageNumber) 
    { 

     string outImageName = Path.GetFileNameWithoutExtension(InputPDFFile); 
     outImageName = outImageName+"_"+PageNumber.ToString() + "_.png"; 


     GhostscriptPngDevice dev = new GhostscriptPngDevice(GhostscriptPngDeviceType.Png256); 
     dev.GraphicsAlphaBits = GhostscriptImageDeviceAlphaBits.V_4; 
     dev.TextAlphaBits = GhostscriptImageDeviceAlphaBits.V_4; 
     dev.ResolutionXY = new GhostscriptImageDeviceResolution(290, 290); 
     dev.InputFiles.Add(InputPDFFile); 
     dev.Pdf.FirstPage = PageNumber; 
     dev.Pdf.LastPage = PageNumber; 
     dev.CustomSwitches.Add("-dDOINTERPOLATE"); 
     dev.OutputPath = Server.MapPath(@"~/tempImages/" + outImageName); 
     dev.Process(); 

    } 
+0

Questo richiede ancora che Ghostscript sia installato sul server. –

+0

A partire da Ghostscript.NET 1.2.1, questo non sembra funzionare su Linux. – sunside