2016-10-27 42 views
0

私はAdobe AcrobatからpngにエクスポートPDFを使用するのと同じ画質を得たいです。元のサイズを取得

しかし、何とかこれは私のためには機能しません。私は、Adobe Acrobatのツールの助けを借りて、PNGへのPDFファイルをエクスポートする場合、私が得る寸法は以下のとおりです。 幅:11264 PIX 身長:15940 PIX

あなたは私はあなたに私が使用方法を提供見ているようページごとにイメージを作成してpdfを読む。私はint型のページ(インデックス)フロートDPIXを必要と.Renderメソッドを使用するようにしているしている、dpiYフロートの可能性、ブールforPrinting

しかし、それは保存した画像には影響ありませんどのようにいくつかの?

using (var document = PdfiumViewer.PdfDocument.Load(file)) 
{ 
    //This int is used to get the page count for each document 
    int pagecount = document.PageCount; 

    //With the int pagecount we can create as may screenshots as there are pages in the document 
    for (int index = 0; index < pagecount; index++) 
    { 
     //render the image created 
     var image = document.Render(index,8448,11955, true); 

     //savde the created screenshot temporerlay as a png + number (count) 
     image.Save(@"C:\Users\chnikos\Desktop\Test\output" + index.ToString("000") + ".png",ImageFormat.Png); 
     application.Selection.InlineShapes.AddPicture(@"C:\Users\chnikos\Desktop\Test\output" + index.ToString("000") + ".png"); 
    } 
} 

答えて

0

これは、より良い例かもしれません: Library files

using System.Drawing.Imaging; 

string Desktop = Environment.GetFolderPath(Environment.SpecialFolder.Desktop); 

//This one is with Spire.Pdf 
void PDF_To_Image(string pdf) 
{ 
    var doc = new Spire.Pdf.PdfDocument(); 
    doc.LoadFromFile(pdf); 

    //This int is used to get the page count for each document 
    int pagecount = doc.Pages.Count; 

    //With the int pagecount we can create as many screenshots as there are pages in the document 
    for (int index = 0; index < pagecount; index++) 
    { 
     //render the image created 
     var dpiX = 75; 
     var dpiY = 75; 
     var image = doc.SaveAsImage(index, Spire.Pdf.Graphics.PdfImageType.Bitmap, dpiX, dpiY); 

     //save the created screenshot temporerlay as a png + number (count) 
     image.Save(Desktop + @"\Test\output\" + index.ToString("000") + ".png", ImageFormat.Png); 
    } 
} 

//This one is with Aspose.Pdf & xps2img. 
//Aspose.Pdf converts the Pdf document to Xps format.. 
//xps2img creates images from the xps file.. 
void PDF_To_Image2(string pdf) 
{ 
    var doc = new Aspose.Pdf.Document(pdf); 
    var saveOptions = new Aspose.Pdf.XpsSaveOptions(); 
    doc.Save("Preview.xps", saveOptions); 

    xps2img.Parameters pp = new xps2img.Parameters(); 
    pp.Dpi = 300; 
    pp.ImageType = xps2img.ImageType.Png; 
    pp.RequiredSize = new System.Drawing.Size((int)doc.PageInfo.Width, (int)doc.PageInfo.Height); 
    pp.ImageOptions = xps2img.ImageOptions.Default; 
    var img3 = xps2img.Xps2Image.ToBitmap("Preview.xps", pp).ToList(); 


    //This int is used to get the page count for each document 
    int pagecount = img3.Count; 

    //With the int pagecount we can create as many screenshots as there are pages in the document 
    for (int index = 0; index < pagecount; index++) 
    { 
     img3[index].Save(Desktop + @"\Test\Output\" + index.ToString("000") + ".png", ImageFormat.Png); 
    } 
} 
+0

本当の答えではない一般的な.. –

+0

この現時点での例です。コードスニペットでは、 – ArchAngel

+0

は悪くはありませんが、品質は依然として信号と同じくらい良いわけではありません何とかそれを改善する? –

0

使用PDFSharp & Migradocs私が働いている

// Create a new PDF document 
PdfDocument document = new PdfDocument(); 

// Create a font 
XFont font = new XFont("Times", 25, XFontStyle.Bold); 

PageSize[] pageSizes = (PageSize[])Enum.GetValues(typeof(PageSize)); 
foreach (PageSize pageSize in pageSizes) 
{ 
    if (pageSize == PageSize.Undefined) 
    continue; 

    // One page in Portrait... 
    PdfPage page = document.AddPage(); 
    page.Size = pageSize; 
    XGraphics gfx = XGraphics.FromPdfPage(page); 
    gfx.DrawString(pageSize.ToString(), font, XBrushes.DarkRed, 
    new XRect(0, 0, page.Width, page.Height), 
    XStringFormat.Center); 

    // ... and one in Landscape orientation. 
    page = document.AddPage(); 
    page.Size = pageSize; 
    page.Orientation = PageOrientation.Landscape; 
    gfx = XGraphics.FromPdfPage(page); 
    gfx.DrawString(pageSize.ToString() + " (landscape)", font, 
    XBrushes.DarkRed, new XRect(0, 0, page.Width, page.Height), 
    XStringFormat.Center); 
} 

// Save the document... 
string filename = "PageSizes.pdf"; 
document.Save(filename); 
// ...and start a viewer. 
Process.Start(filename); 
+0

あなたはここで何をしようとしていますか?あなたはpdfsharpがpdfpageをイメージに変換できないことを知っていますか?それはpdfページでのみ描画することができます.. – ArchAngel

+0

それはそのコードで動作します – Gomze

+0

はい、それはpdfファイルを作成するときに行いますが、pdfファイルを画像に変換する必要があるときには、そうではありません。 。 – ArchAngel

関連する問題