Visualizzazione dei risultati da 1 a 2 su 2
  1. #1
    Utente di HTML.it
    Registrato dal
    Apr 2010
    Messaggi
    34

    [C#] Problema creazione PDF in formato A4 e orientato verticalmente

    Salve a tutti, vorrei creare un metodo che prende in input un pdf come array di byte e mi restituisce ancora un array di byte, effettuando delle opportune modifiche sulla formattazione delle varie pagine del PDF, per questo ho utilizzato la libreria iTextSharp.
    Il problema è che non riesco a ricavare correttamente l'output generato, in basso il codice, dov'è che sbaglio?
    Grazie.


    codice:
    public static byte[] RotateResizeFile(byte[] inputFile)
            {
    
                iTextSharp.text.pdf.PdfReader pdfRdr = new iTextSharp.text.pdf.PdfReader(inputFile);
                MemoryStream ms = new MemoryStream();
                byte[] output = null;
    
                for (int i = 1; i <= pdfRdr.NumberOfPages; i++)
                {
                    iTextSharp.text.Document doc = 
    new iTextSharp.text.Document(pdfRdr.GetPageSizeWithRotation(i));
                
                    iTextSharp.text.pdf.PdfWriter outputWriter =
                    iTextSharp.text.pdf.PdfWriter.GetInstance(doc, ms);
    
                    doc.Open(); 
                    doc.SetPageSize(iTextSharp.text.PageSize.A4);
                    iTextSharp.text.pdf.PdfContentByte cb = outputWriter.DirectContent;  
                    iTextSharp.text.pdf.PdfImportedPage page = 
                    outputWriter.GetImportedPage(pdfRdr, i); 
    
                    int rotation = pdfRdr.GetPageRotation(i);
                    if (rotation == 90 || rotation == 270)
                    {
                        if (rotation == 90)
                        {
                            cb.AddTemplate(page, 0, -1f, 1f, 0, 0, 
                            pdfRdr.GetPageSizeWithRotation(i).Height);
                        }
                        if (rotation == 270)
                        {
                            cb.AddTemplate(page, 0, 1.0F, -1.0F, 0, 
                            pdfRdr.GetPageSizeWithRotation(i).Width, 0);
                        }
                    }
                    else { cb.AddTemplate(page, 1f, 0, 0, 1f, 0, 0); }
    
                    if (i > 1) {
                        output = Combine(output,cb.ToPdf(outputWriter));
                    }
                    else
                    {
                        output = cb.ToPdf(outputWriter);
                    }
                    doc.Close();
                    
                }
    
                return output;
    }

  2. #2
    Utente di HTML.it
    Registrato dal
    Apr 2010
    Messaggi
    34
    Up.
    Scusate per la descrizione sommaria del problema.
    Nessuno sa darmi qualche indizio?

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2024 vBulletin Solutions, Inc. All rights reserved.