2009-08-24 27 views
5

He escrito un fragmento de código que usa la biblioteca PdfSharp. La instancia de PdfSharp.Pdf.PdfDocument creado guarda en el disco como se esperaba. Se muestra el contenido correcto, pero en la configuración de página incorrecta.PdfSharp - Configuraciones incorrectas de la página PDF cuando se abre el documento en Acrobat

configuración de la página

El defecto para PDFsharp son:

  1. PdfSharp.PageSizes.A4
  2. PdfSharp.PageOrientation.Portrait

Mi problema es que estos valores parecen anular los ajustes necesarios.

Creo la instancia de la clase PdfDocument y agrego una nueva instancia de clase PdfPage a su propiedad de colección Pages. Entonces, la página de configuración de la siguiente manera:

  1. PdfDocument.Pages [0] = Clasifique PdfSharp.PageSizes.Letter
  2. PdfDocument.Pages [0] = .Orientation PdfSharp.PageOrientation.Landscape
  3. I extraer las cadenas (esto funciona bien)
  4. ahorro el documento en el disco (esto funciona bien)
  5. Process.Start (myPdfFilename) - a continuación, Acrobat Reader se abre con mi documento .
  6. Los valores de la página son A4 - Retrato ...

estoy bastante confundido. Conozco una opción dentro de Acrobat Reader que permite al usuario cambiar la orientación de la página sin cambiar la dirección del texto. No importa si marque esta opción o no, todavía siguen los ajustes incorrectos.

Cualquiera tiene una idea? ¡Gracias!

+0

Gracias PJP me escribió de esta manera durante la edición, pero muestran bizarly y yo no sé por qué –

Respuesta

7

Por alguna extraña razón, PDFsharp parece que no se comportan de la misma con las dos condiciones siguientes:

Ejemplo 1 - No parece asociar la instancia de la clase a la PdfPage PdfDocument a pesar de que los valores de la página son correctos durante una llamada y después de haber llamado al método 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); 

Ejemplo 2 - El mismo aquí ...

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); 

Ejemplo 3 - Este parece haber resuelto mi problema

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); 

Alguien tiene alguna idea de lo que me estoy perdiendo aquí ? Parece que hago lo mismo en cualquiera de estos ejemplos, en lo que a mí respecta.

solución es: tamaño

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); 

Conjunto primera.

Gracias por cualquier comentario y/o respuesta!

+0

se. parece que tengo que especificar dos veces la configuración de orientación de la página, de lo contrario no es válido ... –

+0

Me he dado cuenta de que si configuro la orientación Antes del tamaño, es como si se hubiera reiniciado la orientación. Sin embargo, cuando configuro el tamaño antes de la orientación, parece que funciona mejor. Muy confuso todo esto ... –

6

He examinado este problema. Parece que tiene que establecer "página".Tamaño "antes de configurar" página.Orientación "a horizontal Esto es un error porque el orden no debería importar aquí.

El pedido importa, pero la solución es simple: cambie 2 líneas en el Ejemplo 1 y ya ha terminado (Por cierto: ninguna necesidad de fijar Girar a 0)

PDFsharp Foro:.!
http://forum.pdfsharp.net/

+0

¡Muchas gracias por su respuesta! No siempre es obvio asegurar que nuestra solución alternativa sea buena hasta que otro programador entre. Esto me ayuda mucho. ¡Gracias! –

+0

Y gracias también por la URL del foro de PDFSharp –

Cuestiones relacionadas