使用Aspose.Words将docx转换为图像

时间:2015-03-05 14:42:08

标签: asp.net-mvc aspose.words

我将生成的文档转换为pdf和png,请参阅下面的代码。但由于某些原因,字体有问题。在我的本地开发机器上,一切都是正确的,但是当部署在生产服务器上时,PNG中的字体丢失了。我已经检查过,但它们已安装在服务器上。有人可以帮我这个吗?

var dstDoc = doc.Clone();
var newInvoice = new InvoicePdf(factuur);
var ds = newInvoice.ToDataSet();
dstDoc.BuiltInDocumentProperties.Title = newInvoice.InvoiceID;
dstDoc.BuiltInDocumentProperties.Subject = newInvoice.SendDate;
dstDoc.MailMerge.FieldMergingCallback = new HandleMergeFieldAlternatingRows();
dstDoc.MailMerge.ExecuteWithRegions(ds);

var filePath = Path.Combine(folderInvoices, newInvoice.SendDateOrginal.Year.ToString(CultureInfo.InvariantCulture));
Directory.CreateDirectory(filePath);
var fileName = string.Format("{0} - {1}", newInvoice.InvoiceID, newInvoice.DebtorCompany.ToString(true));
filePath = Path.Combine(filePath, fileName);
filePaths.Add(filePath + ".pdf");
dstDoc.Save(filePath + ".pdf", SaveFormat.Pdf);

var options = new ImageSaveOptions(SaveFormat.Png) { PageCount = 1, Resolution = 120, UseAntiAliasing = true, PrettyFormat = true, UseHighQualityRendering = true };
for (var i = 0; i < dstDoc.PageCount; i++)
{
    options.PageIndex = i;
    dstDoc.Save(string.Format("{0}_{1}.png", filePath, i), options);
}

1 个答案:

答案 0 :(得分:0)

如果它是共享服务器,那么很可能是安全问题。 Aspose.Words for .NET DLL需要访问Windows注册表,才能找到fonts文件夹。有关详细信息,请参阅http://www.aspose.com/docs/display/wordsnet/Considerations+When+Running+on+a+Shared+Server+Environment

也可以使用变通方法来指定文件夹的路径,该路径具有所有必需的字体。有关示例代码,请参阅http://www.aspose.com/docs/display/wordsnet/How+to++Specify+True+Type+Fonts+Location

我与Aspose一起担任开发人员传播者。