0

I am trying to remove white margins with iTextSharp. I am trying get from this: enter image description here

to this: enter image description here

I used Textmargin fider but it only detects boundry for text. Heres my code

private Rectangle getOutputPageSize(PdfReader reader, int page)
{
    PdfReaderContentParser parser = new PdfReaderContentParser(reader);
    PTextMarginFinder finder = parser.ProcessContent<TextMarginFinder>(page, new TextMarginFinder());
    double lijevo = finder.GetLlx();
    double desno = finder.GetUrx();
    double gore = finder.GetUry();
    double dole = finder.GetLly();
    return new Rectangle(finder.GetLlx(), finder.GetLly(), finder.GetUrx(), finder.GetUry());
}
    private void button1_Click(object sender, EventArgs e)
    {
        string fileName = "e:\\test.pdf";
        if (File.Exists(fileName))
        {
            PdfReader pdfReader = new PdfReader(fileName);
            PdfStamper stamper = new PdfStamper(pdfReader, new System.IO.FileStream("E:\\gotovo\\test.pdf",FileMode.Append));
            for (int p = 1; p <= pdfReader.NumberOfPages; p++)
            {
                PdfDictionary page = pdfReader.GetPageN(1);
                PdfArray cropBox;
                PdfArray mediaBox;
                cropBox = page.GetAsArray(PdfName.CROPBOX);
                mediaBox = page.GetAsArray(PdfName.MEDIABOX);
                //ITextExtractionStrategy strategy = new SimpleTextExtractionStrategy();
                //string currentText = PdfTextExtractor.GetTextFromPage(pdfReader, page, strategy);
                Rectangle rect =getOutputPageSize(pdfReader, 1);
                float[] flo = { rect.Left, rect.Bottom, rect.Right, rect.Top };
                PdfArray pdfa = new PdfArray(flo);
                //PdfArray pdfa = new PdfArray(mediaBox);
                page.Put(PdfName.CROPBOX, pdfa); 
                stamper.MarkUsed(page); 
                //currentText = Encoding.UTF8.GetString(ASCIIEncoding.Convert(Encoding.Default, Encoding.UTF8, Encoding.Default.GetBytes(currentText)));
                //text.Append(currentText);
            }
            stamper.Close();
            pdfReader.Close();
        }
    }

My code does only this: enter image description here Is there any other way to get boundaries right?

Krkec
  • 121
  • 1
  • 4
  • 14
  • Um, so the function **TextMarginFinder** basically works as it should? – Jongware Aug 24 '15 at 23:33
  • 1
    In [this answer](http://stackoverflow.com/a/20212172/1729265) a more generic [MarginFinder](https://github.com/mkl-public/testarea-itext5/blob/master/src/main/java/mkl/testarea/itext5/content/MarginFinder.java) is developed as final alternative. It is in Java and iText but should be easy to translate to C# and iTextSharp. – mkl Aug 25 '15 at 04:44
  • I translated MarginFinder.java and it works for every margin except top. – Krkec Aug 25 '15 at 20:40
  • I founded error Thanks – Krkec Aug 25 '15 at 20:45

0 Answers0