Free Support Forum - aspose.com

Apsose.cells 如何设置TIFF精度(分辨率)

Aspose.Cells.Workbook excel = new Aspose.Cells.Workbook(path);
Aspose.Cells.PdfSaveOptions pdfSaveOptions = new Aspose.Cells.PdfSaveOptions(Aspose.Cells.SaveFormat.TIFF);
excel.Save(newFilePath, pdfSaveOptions);
这样excel文件转换为TIFF格式的文件分辨率偏低,想提高,如何设置?谢谢。

Excel文件转换为图片,请使用WorkbookRender或者SheetRender,代码如下:

Aspose.Cells.Rendering.ImageOrPrintOptions imgOpt = new Aspose.Cells.Rendering.ImageOrPrintOptions();
imgOpt.ImageType = Aspose.Cells.Drawing.ImageType.Tiff;

//set desired resolution here. e.g. 600
imgOpt.HorizontalResolution = 600;
imgOpt.VerticalResolution = 600;

Aspose.Cells.Workbook excel = new Aspose.Cells.Workbook(path);
Aspose.Cells.Rendering.WorkbookRender wr = new Aspose.Cells.Rendering.WorkbookRender(excel, imgOpt);
wr.ToImage(newFilePath);

搞定,谢谢。
不过是不是版本问题,
imgOpt.ImageType = Aspose.Cells.Drawing.ImageType.Tiff;这条
我改成了imgOpt.SaveFormat = SaveFormat.TIFF;

@sweetime,

使用您的Aspose.Cells版本不能正常工作吗?您正在使用哪个版本的API?

版本18.4,按您这个Aspose.Cells.Rendering.ImageOrPrintOptions imgOpt = new Aspose.Cells.Rendering.ImageOrPrintOptions()会出现imgOpt下找不到ImageType 属性,改成
imgOpt.SaveFormat = SaveFormat.TIFF后正常运行。

另外还想咨询一下,aspose.cells能否把excel文件生成为图片格式的PDF文件,即生成的PDF文件不能选择文本,若想选择文本需通过对PDF文件进行OCR操作做成双层PDF才可。目前的我做法是生成TIFF格式后再转为PDF格式,再OCR,我想一步到位,省去生成TIFF这个环节,不知道有没有这个功能,谢谢。

版本18.4,按您这个Aspose.Cells.Rendering.ImageOrPrintOptions imgOpt = new Aspose.Cells.Rendering.ImageOrPrintOptions()会出现imgOpt下找不到ImageType 属性,改成
imgOpt.SaveFormat = SaveFormat.TIFF后正常运行。

最近的版本中,我们在ImageOrPrintOptions中,添加了ImageType,并舍弃了ImageFormat,在新的版本中使用ImageType.Tiff/SaveFormat.TIFF, 而在老的版本可以使用ImageFromat.Tiff/SaveFormat.TIFF

aspose.cells能否把excel文件生成为图片格式的PDF文件

目前,Aspose.Cells不支持生成图片格式的PDF文件,你可以使用Aspose.Cells生成图片,然后再用我们Aspose.Pdf产品生成图片格式的PDF文件。

回复相当及时、专业,感谢。

不客气,后续有任何问题,您可以随时联系我们!

@Peyton.Xu xlsx.zip (35.1 KB)
还有一个问题请教一下。
附件里有两个excel文件,001.xlsx和002.xlsx,如果我用aspose.cell分别把这两个文件转为pdf文件(Aspose.Cells.PdfSaveOptions(Aspose.Cells.SaveFormat.Pdf)),那么生成的pdf文件相当完美。

如果我把001和002两个文件用aspose.cell合并excel功能(合并的顺序为001在前,002在后,用Combine方法),另存为新文件的excel文件,再转为pdf(或tiff)文件(Aspose.Cells.SaveFormat.Pdf或Aspose.Cells.SaveFormat.TIFF),会出现生成的pdf或tiff文件中的单元格的内容没有完全显示出来(如附件中的显示不全.jpg (52.2 KB)

在001.xlsx和002.xlsx两个文件中的页面设置、边距之类的我已经设置一样,我也试过aspose.cell 18.4和20版本,都会出现这个问题,不知道该如何解决,麻烦支一下招,谢谢。

@sweetime

001.xlsx和002.xlsx的默认字体不一样:001.xlsx的默认字体为“宋体”,11 ,002.xlsx的默认字体为“Calibri”,11,默认字体的变化会导致列宽和页面缩放不同,导致合并后输出不一致。
您可以使用以下代码,将002.xlsx的默认字体设为跟001.xlsx的默认字体一样:

string path = ...
Workbook wb1 = new Workbook(path + "001.xlsx");
Console.WriteLine("001.xlsx default font: " + wb1.DefaultStyle.Font);

Workbook wb2 = new Workbook(path + "002.xlsx");
Console.WriteLine("002.xlsx origin default font: " + wb2.DefaultStyle.Font);
Console.WriteLine("002.xlsx Column D origin width: " + wb2.Worksheets["分部分项工程量清单计价表"].Cells.GetColumnWidthPixel(3));
Style style2 = wb2.DefaultStyle;
style2.Font.Name = wb1.DefaultStyle.Font.Name;
wb2.DefaultStyle = style2;
Console.WriteLine("002.xlsx changed default font: " + wb2.DefaultStyle.Font);
Console.WriteLine("002.xlsx Column D changed width: " + wb2.Worksheets["分部分项工程量清单计价表"].Cells.GetColumnWidthPixel(3));

wb1.Combine(wb2);
Console.WriteLine("Combined workbook default font: " + wb1.DefaultStyle.Font);

wb1.Save("combined.pdf");

但是,建议您在开始设计/生成001.xlsx和002.xlsx时,就将它们的默认字体设为一致(中文建议设成“宋体”,11),不然,合并后,可能会有许多不一致的地方(与合并前相比)。

搞定了,十分感谢。没想到excel中还有缺省字体这一说法。赞赞赞

很高兴您的问题得到了解决,后续有任何问题,您可以随时联系我们!

@Peyton.Xu
还得咨询一下,aspose.cells如何取得工作簿或工作表的总页数 。版本20可以通过WorkbookPrintingPreview或SheetPrintingPreview分别取得总页数,但18.4版本似乎没这功能,有没有方法可以解决。谢谢。

@sweetime
可以使用WorkbookRender.PageCountSheetRender.PageCount
但是,如果只是获取总页数,版本20的WorkbookPrintingPreviewSheetPrintingPreview的效率更高。

好的,搞定了,非常感谢。

又来麻烦您了,aspose.pdf有直接把文本格式的pdf连带书签直接转换成图片格式的pdf吗?

@sweetime
这个问题的详细信息,您需要咨询Aspose.Pdf :重新新建一个Aspose.Pdf标题的帖子。