【问题标题】:Trying to convert plain text file to iTextSharp without losing format尝试将纯文本文件转换为 iTextSharp 而不会丢失格式
【发布时间】:2011-08-08 20:18:25
【问题描述】:

我正在尝试使用 iText Sharp 将文本文件转换为 PDF。 转换本身不是问题,但是,我无法创建 PDF 文件,使其看起来与文本文件中的文本完全对齐。

这是我正在使用的代码:

public void GetPDF(string data)
    {

        using (MemoryStream ms = new MemoryStream())
        {
            Rectangle docSize = new Rectangle(612, 798);
            Document myDocument = new Document(PageSize.A4.Rotate());

            PdfWriter.GetInstance(myDocument, new FileStream
                                         ("MyNewPDF.pdf", FileMode.Create));

            // step 3:  Open the document now using
            myDocument.Open();

            // step 4: Now add some contents to the document
            myDocument.Add(new Paragraph(data));
            myDocument.Close();
        }
    }

是否有人建议如何将文本文件简单地转换为 PDF 而不会丢失文本文件的格式? 任何帮助表示赞赏。

【问题讨论】:

标签: c# itextsharp


【解决方案1】:

我建议让您的 PDF 文件使用像 Courier New 这样的等距字体。

【讨论】:

  • 所以,这几乎可以工作了。每页底部显示页码。在第五页之后,页码不再显示在底部,而是在第 6 页的开头。有什么建议吗?
  • @J.Barras,页码是您的文本文件的一部分吗?如果是这样,那么您对适合页面的内容的计算是错误的。
  • 我要问的问题相同,我不相信 ITextSharp 默认会添加页眉/页脚(有或没有页码)。
【解决方案2】:

纯文本文件不包含任何格式。当您提到文本的对齐方式时,我不得不假设您正在查看具有固定宽度或等宽字体的文本文件。因此,在将文本文件转换为 PDF 时,应指定使用固定宽度/等宽字体(如 Lucida Console、Courier New、Consolas 等)

其次,一般不会在纯文本文件中指定自动换行。长段文本将以回车符/换行符结尾,仅此而已。 PDF 转换可能会在页面边界处引入一些自动换行。要控制这一点,您需要选择在您想要的位置换行的字体大小,或者手动插入一些 CR/LF。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2014-04-23
    • 1970-01-01
    • 1970-01-01
    • 2020-07-05
    • 1970-01-01
    • 2019-01-16
    • 2019-01-17
    相关资源
    最近更新 更多