[英]Keep quality of jpg after converting from pdf to jpg with pdflibnet and c#
我使用此代碼將pdf文件轉換為jpg圖像,但是jpg圖像的質量非常差; 有人知道如何更改pdf的質量或保持pdf的質量嗎? 我正在制作質量卓越的多頁pdf。 對不起,我的英語不好。
public void ConvertPDFtoJpg(string filename, string dirOut)
{
string[] archivo = filename.Split('\\');
string final = archivo[3].Replace(".pdf", "");
string archOri = final;
PDFLibNet.PDFWrapper _pdfDoc = new PDFLibNet.PDFWrapper();
_pdfDoc.LoadPDF(filename);
int p = 1;
SqlConnection con1 = new SqlConnection("Data Source=192.168.10.25;User ID=sa;Initial Catalog=BECO");
con1.Open();
for (int s = 0; s < _pdfDoc.PageCount; s++)
{
Image img = RenderPage(_pdfDoc, s);
string rutaFin = final + ".page" + p + ".jpg";
img.Save(Path.Combine(dirOut, string.Format(rutaFin)));
string textoCmd = "INSERT into imagenes (ruta1,valor,estado) VALUES ('" + rutaFin +"', '"+ archOri +"', 0)";
SqlCommand com4 = new SqlCommand(textoCmd, con1);
com4.ExecuteNonQuery();
p++;
}
_pdfDoc.Dispose();
con1.Close();
}
public Image RenderPage(PDFLibNet.PDFWrapper doc, int page)
{
doc.CurrentPage = page + 1;
doc.CurrentX = 0;
doc.CurrentY = 0;
doc.RenderPage(IntPtr.Zero);
// create an image to draw the page into
var buffer = new Bitmap(doc.PageWidth, doc.PageHeight);
doc.ClientBounds = new Rectangle(0, 0, doc.PageWidth, doc.PageHeight);
using (var g = Graphics.FromImage(buffer))
{
var hdc = g.GetHdc();
try
{
doc.DrawPageHDC(hdc);
}
finally
{
g.ReleaseHdc();
}
}
return buffer;
}
馬蒂亞斯,
您需要做的是在RenderPage方法中添加一行以指定輸出DPI。
例如:
...
doc.CurrentX = 0;
doc.CurrentY = 0;
doc.RenderDPI = 300;
...
在這種情況下,我將其設置為300 DPI,這將為您提供更多細節。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.