Aspose.Words for .NET使用教程(十):其他文件格式转换

Aspose.Words无需Microsoft Word也可在任何平台上满足Word文档的一切操作需求。本文将与大家分享如何将word和图像转换为PDF

将HTML转换为PDF

要将HTML转换为PDF,只需调用Document.Save方法并指定扩展名为“.PDF”即可。如果要从外部源加载图像和CSS等,可以使用IResourceSavingCallback。下面的代码示例演示将HTML转换为PDF并从外部源加载图像。

// For complete examples and data files, please go to https://github.com/aspose-words/Aspose.Words-for-.NET
public class ImageLoadingWithCredentialsHandler : IResourceLoadingCallback
{
    public ImageLoadingWithCredentialsHandler()
    {
        mWebClient = new WebClient();
    }
    public ResourceLoadingAction ResourceLoading(ResourceLoadingArgs args)
    {
        if (args.ResourceType == ResourceType.Image)
        {
            Uri uri = new Uri(args.Uri);

            if (uri.Host == "www.aspose.com")
                mWebClient.Credentials = new NetworkCredential("User1", "akjdlsfkjs");
            else
                mWebClient.Credentials = new NetworkCredential("SomeOtherUserID", "wiurlnlvs");

            // Download the bytes from the location referenced by the URI.
            byte[] imageBytes = mWebClient.DownloadData(args.Uri);

            args.SetData(imageBytes);

            return ResourceLoadingAction.UserProvided;
        }
        else
        {
            return ResourceLoadingAction.Default;
        }
    }

    private WebClient mWebClient;
}复制代码

在Base64编码中将字体导出为HTML

使用Aspose.Words我们可以检查字体资源是否应该以base 64编码嵌入到HTML中。默认情况下,该值为false,字体将写入单独的文件。如果此选项设置为true,则字体将嵌入到Base64编码的文档CSS中。 该属性仅影响HTML格式,不会影响EPUB和MHTML。这是HtmlSaveOptions.ExportFontResources选项的扩展,ExportFontsAsBase64仅在此属性设置为true时才有效。下面的示例演示如何使用Base64编码将字体导出为HTML。

// For complete examples and data files, please go to https://github.com/aspose-words/Aspose.Words-for-.NET
// The path to the documents directory.
string dataDir = RunExamples.GetDataDir_LoadingAndSaving();
string fileName = "Document.doc";
Document doc = new Document(dataDir + fileName);
HtmlSaveOptions saveOptions = new HtmlSaveOptions();
saveOptions.ExportFontResources = true;
saveOptions.ExportFontsAsBase64 = true;           
dataDir = dataDir + "ExportFontsAsBase64_out.html";
doc.Save(dataDir, saveOptions);复制代码

使用HtmlSaveOptions属性

使用Aspose.Words,我们可以指定一个文件夹,在将文档导出为HTML时,可以保存图像,字体和外部CSS等所有资源。默认值为空字符串。ResourceFolder是指定应写入所有资源的文件夹的最简单方法。我们可以使用FontsFolder等单独的属性将字体保存到指定的文件夹,使用ImagesFolder将图像保存到指定的文件夹。

使用ResourceFolderAlias属性,我们还可以指定用于构造写入HTML文档的所有资源的URI的文件夹的名称,这是指定应如何构造所有资源文件的URI的最简单方法。可以通过ImagesFolderAlias和FontsFolderAliasproperties分别为图像和字体指定相同的信息。 但是,CSS没有单独的属性。 FontsFolder,FontsFolderAlias,ImagesFolder,ImagesFolderAlias和CssStyleSheetFileName属性的行为不会更改。请注意,CssStyleSheetFileName属性用于指定文件夹名称和文件名。

指定相对路径时,FontsFolder和ImagesFolder相对于代码程序集所在的文件夹,ResourceFolder和CssStyleSheetFileName相对于HTML文档所在的输出文件夹。在下面的示例中,ResourceFolder指定此路径相对于输出文件夹的相对路径,其中保存HTML文档,http://example.com/resources 别名用于构造所有资源的URL。

// For complete examples and data files, please go to https://github.com/aspose-words/Aspose.Words-for-.NET
// The path to the documents directory.
string dataDir = RunExamples.GetDataDir_LoadingAndSaving();
string fileName = "Document.doc";
Document doc = new Document(dataDir + fileName);
HtmlSaveOptions saveOptions = new HtmlSaveOptions();
saveOptions.CssStyleSheetType = CssStyleSheetType.External;
saveOptions.ExportFontResources = true;
saveOptions.ResourceFolder = dataDir + @"\Resources";
saveOptions.ResourceFolderAlias = "http://example.com/resources";
doc.Save(dataDir + "ExportResourcesUsingHtmlSaveOptions.html", saveOptions);复制代码

如何将文档转换为MHTML和电子邮件

Aspose.Words可以以MHTML(Web Archive)格式保存任何文档。这使得Aspose.Words和Aspose.Email一起使用可以生成和发送内容丰富的电子邮件。例如,你可以将预定义的DOC,OOXML或RTF文档加载到Aspose.Words中,用数据填充之后另存为MHTML,然后使用Aspose.Email发送电子邮件。 下面的代码示例演示了如何使用Aspose.Email将Aspose.Words中的文档保存为MHTML和电子邮件。

// For complete examples and data files, please go to https://github.com/aspose-words/Aspose.Words-for-.NET
// The path to the documents directory.
string dataDir = RunExamples.GetDataDir_LoadingAndSaving();

// Load the document into Aspose.Words.
Document doc = new Document(dataDir + "Test File (docx).docx");

// Save into a memory stream in MHTML format.
Stream stream = new MemoryStream();
doc.Save(stream, SaveFormat.Mhtml);

// Rewind the stream to the beginning so Aspose.Email can read it.
stream.Position = 0;

// Create an Aspose.Network MIME email message from the stream.
MailMessage message = MailMessage.Load(stream, new MhtmlLoadOptions());
message.From = "your_from@email.com";
message.To = "your_to@email.com";
message.Subject = "Aspose.Words + Aspose.Email MHTML Test Message";

// Send the message using Aspose.Email
SmtpClient client = new SmtpClient();
client.Host = "your_smtp.com";
client.Send(message);复制代码

                         为你推荐:Aspose专题 - Aspose最新资源合集

                           【下载Aspose.Words for .NET最新试用版


转载于:https://juejin.im/post/5c7f65c65188251b652af544

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值