PdfSharp-неправильные настройки страницы PDF при открытии документа в Acrobat

Я написал фрагмент кода, который использует библиотеку PdfSharp. Экземпляр PdfSharp.Документ pdf.Документы PDF, созданные сохраняет на диск, как ожидалось. Отображается правильное содержимое, но на неправильных настройках страницы.

настройки страницы по умолчанию для PdfSharp:

  1. PdfSharp.PageSizes.А4
  2. PdfSharp.PageOrientation.Портрет

моя проблема в том, что эти настройки, похоже, переопределяют требуемые настройки.

I создайте экземпляр класса PdfDocument и добавьте новый экземпляр класса PdfPage в его свойство коллекции Pages. Затем я настраиваю страницу следующим образом:

  1. PdfDocument.Страницы[0].Размер = PdfSharp.PageSizes.Письмо!--6-->
  2. PdfDocument.Страницы[0].Ориентация = PdfSharp.PageOrientation.Пейзаж
  3. Я рисую строки (это прекрасно работает)
  4. я сохраняю документ на диск (это отлично работает)

2 ответов


по какой-то странной причине PdfSharp, похоже, не ведет себя одинаково с обоими следующими:

Пример 1-он, похоже, не связывает экземпляр класса PdfPage с PdfDocument, даже если параметры страницы верны при вызове и после вызова PdfDocument.метод Save.

var pdfDoc = new PdfDocument();
var pdfPage = pdfDoc.AddPage();
pdfPage.Orientation = PdfSharp.PageOrientation.Landscape;
pdfPage.Size = PdfSharp.PageSize.Letter;
pdfPage.Rotate = 0;
pdfDoc.Save(filename);

Пример 2 - то же здесь...

var pdfDoc = new PdfDocument();
pdfDoc.Pages.Add();
pdfDoc.Pages[0].Orientation = PdfSharp.PageOrientation.Landscape;
pdfDoc.Pages[0].Size = PdfSharp.PageSize.Letter;
pdfDoc.Pages[0].Rotate = 0;
pdfDoc.Save(filename);

Пример 3 - это, кажется, решить мою проблему

var pdfPage = new PdfPage();
pdfPage.Orientation = PdfSharp.PageOrientation.Landscape;
pdfPage.Size = PdfSharp.PageSize.Letter;
pdfPage.Rotate = 0;
var pdfDoc = new PdfDocument();
pdfDoc.Pages.Add(pdfPage);
pdfDoc.Save(filename);

кто-нибудь имеет представление о я что-то упускаю? Я, кажется, делаю то же самое в любом из этих примеров, насколько это касается меня.

решение:

var pdfPage = new PdfPage();
pdfPage.Size = PdfSharp.PageSize.Letter;
pdfPage.Orientation = PdfSharp.PageOrientation.Landscape;
pdfPage.Rotate = 0;
var pdfDoc = new PdfDocument();
pdfDoc.Pages.Add(pdfPage);
pdfDoc.Save(filename);

Сначала установите размер.

Спасибо за любые комментарии и/или ответы!


Я рассмотрел этот вопрос. Кажется, вам нужно установить "страницу".Размер страницы "перед установкой".Ориентация " на ландшафт. Это ошибка, потому что порядок здесь не имеет значения.

порядок имеет значение-но обходной путь прост: поменять местами 2 строки в Примере 1, и вы сделали (кстати: нет необходимости устанавливать поворот на 0).

Форум PDFsharp:
http://forum.pdfsharp.net/