Конвертировать пустой файл .txt в PDF в C # - PullRequest
0 голосов
/ 31 марта 2011

Я конвертирую .txt в .pdf в c #. Это прекрасно работает, если файл .txt не пустой. если это так, выдается ошибка «В документе нет страниц».

PDF создается, но выдает ошибку «Произошла ошибка при открытии этого документа. Файл поврежден и не может быть восстановлен» при открытии файла PDF.

Код показан ниже

  public void converttxttoPDF(string sourcePath, string destPath)
    {
        try
        {
            iTextSharp.text.Document document = new iTextSharp.text.Document();
            string filename = Path.GetFileNameWithoutExtension(sourcePath);
            System.IO.StreamReader myFile = new System.IO.StreamReader(sourcePath);
            string myString = myFile.ReadToEnd();
            myFile.Close();
            if (!Directory.Exists(destPath))
                Directory.CreateDirectory(destPath);
            iTextSharp.text.pdf.PdfWriter.GetInstance(document, new FileStream(destPath + "\\" + filename + ".pdf", FileMode.CreateNew));
            document.Open();
            document.Add(new iTextSharp.text.Paragraph(myString));
            document.Close();
        }
        catch (Exception ex)
        {
            MessageBox.Show(ex.Message);
        }
    }

дайте мне знать, если понадобится какая-либо информация.

спасибо

Ответы [ 2 ]

1 голос
/ 31 марта 2011

Вам нужно убедить iText, что на этой странице что-то есть.

Два метода:

  1. Будьте явным. writer.setPageEmpty(false);
  2. Обмани это (именно это предлагает Дарин). writer.getDirectContent().setLiteral(" ");
1 голос
/ 31 марта 2011

Вам нужно добавить контент в PDF.Так что попробуйте:

myString = string.IsNullOrEmpty(myString) ? " " : myString;
document.Add(new iTextSharp.text.Paragraph(myString));
...