2013-03-08 1 views
1

Я хочу сделать что-то очень простое, но я не могу понять, как это сделать. Это очень раздражает, вот моя проблема.Добавить текст в параграфе, используя Aspose.PDF

У меня есть следующий текст, который я хочу, чтобы добавить внутри секции Aspose.Pdf

"<h1>What a nice <i>italic</i> freaking title</h1>" 

Поскольку генерация PDF из apsose не правильно поддерживает стили CSS, швы, моя команда решили, что мы бы другой подход, а именно: поддержка основных элементов html и их добавление непосредственно с использованием библиотеки объектов aspose с предопределенным стилем в коде. Теперь, я сделал следующую функцию, чтобы добавить название:

public static void AddTitle(XElement xElement, Section section, TitleType type) 
    { 
     Text title; 
     title = xElement.HasElements ? new Text(section, GetFullValue(xElement)) : new Text(section, xElement.Value); 
     var info = new TextInfo(); 
     switch(type) 
     { 
      case TitleType.H1: 
       info.FontSize = 22; 
       break; 
      case TitleType.H2: 
       info.FontSize = 20; 
       break; 
      case TitleType.H3: 
       info.FontSize = 18; 
       break; 
      case TitleType.H4: 
       info.FontSize = 16; 
       break; 
      case TitleType.H5: 
       info.FontSize = 14; 
       break; 
     } 

     info.IsTrueTypeFontBold = true; 
     title.IsKeptTogether = true; 
     //title.IsHtmlTagSupported = true; 
     title.TextInfo = info; 
     section.Paragraphs.Add(title); 
    } 

КСТАТИ: содержание передается в текстовом объект в этом примере является «Это хорошим наклонного долбанного название»

В настоящем время, курсив не работает. Если я раскомментирую .IsHtmlTagSupported, курсив будет работать, но я теряю TextInfo (полужирный, размер шрифта и т. Д.). Есть ли способ сделать эту работу? Или еще, есть способ добавить текст в один абзац с разными стилями. (Как я могу добавить еще один текстовый объект в мой абзац, который содержит курсивный текст)

ответ

4

При использовании следующего простого кода с Aspose.Pdf для .NET 7.7.0 я могу видеть текст курсива и всю строку в H1. При использовании IsHtmlTagSupported рекомендуется указывать форматирование текста (Bold, FontSize и т. Д.) С помощью HTML-тэгов.

Aspose.Pdf.Generator.Pdf pdf1 = new Aspose.Pdf.Generator.Pdf(); 
Aspose.Pdf.Generator.Section sec1 = pdf1.Sections.Add(); 
Text title = new Text("<h1>What a nice <i>italic</i> freaking title</h1>"); 
var info = new TextInfo(); 
info.FontSize = 12; 
//info.IsTrueTypeFontBold = true; 
title.TextInfo = info; 

title.IsHtmlTagSupported = true; 

sec1.Paragraphs.Add(title); 
pdf1.Save("c:/pdftest/PDF_From_HTML.pdf"); 

Кроме того, абзац текста может иметь один или несколько объектов Сегмента, и вы можете указать различное форматирование для каждого сегмента. Чтобы выполнить ваши требования, вы можете попробовать использовать следующий фрагмент кода

Aspose.Pdf.Generator.Pdf pdf1 = new Aspose.Pdf.Generator.Pdf(); 
Aspose.Pdf.Generator.Section sec1 = pdf1.Sections.Add(); 
Text title = new Text("What a nice"); 

var info = new TextInfo(); 
info.FontSize = 12; 
info.IsTrueTypeFontBold = true; 
title.TextInfo = info; 

Segment segment2 = new Segment(" italic "); 
// set the formatting of segment2 as Italic 
segment2.TextInfo.IsTrueTypeFontItalic = true; 
// add segment2 to segments collection of text object 
title.Segments.Add(segment2); 

Segment segment3 = new Segment(" freaking title "); 
// add segment3 to segments collection of text object 
segment3.TextInfo.IsTrueTypeFontBold = true; 
title.Segments.Add(segment3); 

sec1.Paragraphs.Add(title); 
// save the output document 
pdf1.Save("c:/pdftest/PDF_with_Three_Segments.pdf"); 

 Смежные вопросы

  • Нет связанных вопросов^_^