I am trying to remove white margins with iTextSharp.
I am trying get from this:
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:
Is there any other way to get boundaries right?