ExportFontResources

HtmlSaveOptions.ExportFontResources property

Anger om teckensnittsresurser ska exporteras till HTML, MHTML eller EPUB. Standard ärfalsk .

public bool ExportFontResources { get; set; }

Anmärkningar

Att exportera teckensnittsresurser möjliggör konsekvent dokumentåtergivning oberoende av de teckensnitt som är tillgängliga i en given användares miljö.

OmExportFontResources är satt tillSann , kommer huvud-HTML-dokumentet att referera till varje typsnitt via CSS 3**@font-face** at-rule och typsnitt kommer att matas ut som separata filer. Vid export till IDPF EPUB- eller MHTML -format kommer teckensnitt att bäddas in i motsvarande paket tillsammans med andra underordnade filer.

OmExportFontsAsBase64 är satt tillSann kommer teckensnitt inte att sparas i separata filer. Istället kommer de att bäddas in i**@font-face** at-regler i Base64-kodning.

Viktig! När du exporterar teckensnittsresurser bör teckensnittslicensproblem övervägas. Författare som vill använda specifika typsnitt via en nedladdningsbar teckensnittsmekanism måste alltid noggrant verifiera att deras avsedda användning ligger inom ramen för teckensnittslicensen. Många kommersiella typsnitt tillåter för närvarande inte webbnedladdning av deras typsnitt i någon form. Licensavtal som täcker vissa typsnitt noterar specifikt att användning via**@font-face** rules i CSS-formatmallar är inte tillåtet. Teckensnittsunderinställningar kan också bryta mot licensvillkoren.

Exempel

Visar hur man definierar anpassad logik för att exportera teckensnitt när man sparar till HTML.

public void SaveExportedFonts()
{
    Document doc = new Document(MyDir + "Rendering.docx");

    // Konfigurera ett SaveOptions-objekt för att exportera teckensnitt till separata filer.
    // Ställ in en återuppringning som kommer att hantera teckensnittssparande på ett anpassat sätt.
    HtmlSaveOptions options = new HtmlSaveOptions
    {
        ExportFontResources = true,
        FontSavingCallback = new HandleFontSaving()
    };

    // Återuppringningen kommer att exportera .ttf-filer och spara dem tillsammans med utdatadokumentet.
    doc.Save(ArtifactsDir + "HtmlSaveOptions.SaveExportedFonts.html", options);

    foreach (string fontFilename in Array.FindAll(Directory.GetFiles(ArtifactsDir), s => s.EndsWith(".ttf")))
    {
        Console.WriteLine(fontFilename);
    }

}

/// <summary>
/// Skriver ut information om exporterade teckensnitt och sparar dem i samma lokala systemmapp som deras utdata .html.
/// </summary>
public class HandleFontSaving : IFontSavingCallback
{
    void IFontSavingCallback.FontSaving(FontSavingArgs args)
    {
        Console.Write($"Font:\t{args.FontFamilyName}");
        if (args.Bold) Console.Write(", bold");
        if (args.Italic) Console.Write(", italic");
        Console.WriteLine($"\nSource:\t{args.OriginalFileName}, {args.OriginalFileSize} bytes\n");

        // Vi kan också komma åt källdokumentet härifrån.
        Assert.True(args.Document.OriginalFileName.EndsWith("Rendering.docx"));

        Assert.True(args.IsExportNeeded);
        Assert.True(args.IsSubsettingNeeded);

        // Det finns två sätt att spara ett exporterat teckensnitt.
        // 1 - Spara den på en lokal filsystemsplats:
        args.FontFileName = args.OriginalFileName.Split(Path.DirectorySeparatorChar).Last();

        // 2 - Spara det i en stream:
        args.FontStream =
            new FileStream(ArtifactsDir + args.OriginalFileName.Split(Path.DirectorySeparatorChar).Last(), FileMode.Create);
        Assert.False(args.KeepFontStreamOpen);
    }
}

Se även