永发信息网

为什么C#在调用Acrobat.dll使PDF文件转换为JPG文件后,JPG文件的分辨率缩小了

答案:2  悬赏:20  手机版
解决时间 2021-12-21 14:49
  • 提问者网友:泪痣哥哥
  • 2021-12-21 09:29
在使用Acrobat工具把PDF文件导出JPG文件时,生成的JPG文件的大小为:6924 x 5351;
但是使用C#调用Acrobat.dll生成的JPG文件大小只有2493 x 1926;
代码如下:
pdfPage = (Acrobat.CAcroPDPage)ddd.AcquirePage(i);
pdfPoint = (Acrobat.CAcroPoint)pdfPage.GetSize();
pdfRect = (Acrobat.CAcroRect)Microsoft.VisualBasic.Interaction.CreateObject("AcroExch.Rect", "");
pdfRect.Left = 0;
pdfRect.right =pdfPoint.x;
pdfRect.Top = 0;
pdfRect.bottom = pdfPoint.y;
其中x和y根本就不是PDF文件的真实大小;
请高手解答如何获取PDF真实大小???
最佳答案
  • 五星知识达人网友:老鼠爱大米
  • 2021-12-21 10:48
你可以把一下参数按比例放大,得到的图片也全部都放大了,但是如何得到原来的分辨率这个还真不知道。
imgWidth
imgHeight
pdfPage.CopyToClipboard(pdfRect, 0, 0, 100)
int imgWidth = pdfPoint.x * (int)definition;
int imgHeight = pdfPoint.y * (int)definition;
pdfRect.Left = 0;
pdfRect.right = (short)imgWidth;
pdfRect.Top = 0;
pdfRect.bottom = (short)imgHeight;
// Render to clipboard, scaled by 100 percent (ie. original size)
// Even though we want a smaller image, better for us to scale in .NET
// than Acrobat as it would greek out small text
pdfPage.CopyToClipboard(pdfRect, 0, 0, (short)(100 * (int)definition));
IDataObject clipboardData = Clipboard.GetDataObject();
if (clipboardData.GetDataPresent(DataFormats.Bitmap))
{
Bitmap pdfBitmap = (Bitmap)clipboardData.GetData(DataFormats.Bitmap);
pdfBitmap.Save(imageOutputPath + imageName + i.ToString() + "." + imageFormat.ToString(), imageFormat);
pdfBitmap.Dispose();
}
全部回答
  • 1楼网友:猎心人
  • 2021-12-21 11:25
虽然我很聪明,但这么说真的难到我了
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯