Я использую iTextSharp для создания PDF-документа в альбомной ориентации, используя PageSize.A4.Rotate () , чтобы установить его PageSize. Документ подается в Stream , а затем сохраняется в базе данных в виде байтового массива (в поле VARBINARY).
Stream stream = new MemoryStream();
iTextSharp document = new Document();
document.SetPageSize(PageSize.A4.Rotate());
var writer = PdfWriter.GetInstance(document, stream)
document.Open()
// Write to the document
document.Close();
byte[] file = stream.ToArray();
/* In the actual environment the byte array is stored in the database, to be retrievable later */
// WHERE context: HttpContext in a class that implements IHttpHandler
context.Response.AppendHeader("Content-Disposition", "attachment;filename=Test.pdf");
context.Response.AppendHeader("Content-Length", file.Length.ToString());
context.Response.ContentType = MediaTypeNames.Application.Pdf;
context.Response.BinaryWrite(file);
Проблема, с которой я сталкиваюсь, заключается в том, что при ее извлечении и открытии через браузер (или при сохранении на диск) при печати открывается диалоговое окно «Печать» в книжной ориентации по умолчанию.
Поскольку не все так просто сообщить всем пользователям, что им следует сначала перейти к настройке страницы и установить ориентацию на Пейзаж, насколько возможно распространить настройку ориентации, использованную при создании документа, до диалогового окна «Печать»?