نحوه ذخیره شدن متن در فایلهای PDF
نویسنده: وحید نصیری
تاریخ: ۱۳۹۱/۰۹/۳۰ ۱۳:۳۸
آدرس: www.dntips.ir
| مطالب | ۳۶۹۴ |
| نویسندگان | ۲۷۶ |
| گروههای مطالب | ۱۰۲۴ |
| نقشههای راه | ۱۱۹ |
| دورهها | ۱۴ |
| اشتراکها | ۱۷۹۱۴ |
using System.Diagnostics;
using System.IO;
using iTextSharp.text;
using iTextSharp.text.pdf;
namespace TestReaders
{
class Program
{
static void writePdf()
{
using (var document = new Document(PageSize.A4))
{
var writer = PdfWriter.GetInstance(document, new FileStream("test.pdf", FileMode.Create));
document.Open();
document.Add(new Paragraph("Test"));
PdfContentByte cb = writer.DirectContent;
BaseFont bf = BaseFont.CreateFont();
cb.BeginText();
cb.SetFontAndSize(bf, 12);
cb.MoveText(88.66f, 367);
cb.ShowText("ld");
cb.MoveText(-22f, 0);
cb.ShowText("Wor");
cb.MoveText(-15.33f, 0);
cb.ShowText("llo");
cb.MoveText(-15.33f, 0);
cb.ShowText("He");
cb.EndText();
PdfTemplate tmp = cb.CreateTemplate(250, 25);
tmp.BeginText();
tmp.SetFontAndSize(bf, 12);
tmp.MoveText(0, 7);
tmp.ShowText("Hello People");
tmp.EndText();
cb.AddTemplate(tmp, 36, 343);
}
Process.Start("test.pdf");
}
private static void readPdf()
{
var reader = new PdfReader("test.pdf");
int intPageNum = reader.NumberOfPages;
for (int i = 1; i <= intPageNum; i++)
{
byte[] contentBytes = reader.GetPageContent(i);
File.WriteAllBytes("page-" + i + ".txt", contentBytes);
}
reader.Close();
}
static void Main(string[] args)
{
writePdf();
readPdf();
}
}
}
q BT 36 806 Td 0 -18 Td /F1 12 Tf (Test)Tj 0 0 Td ET Q BT /F1 12 Tf 88.66 367 Td (ld)Tj -22 0 Td (Wor)Tj -15.33 0 Td (llo)Tj -15.33 0 Td (He)Tj ET q 1 0 0 1 36 343 cm /Xf1 Do Q
SaveGraphicsState(); // q
BeginText(); // BT
MoveTextPos(36, 806); // Td
MoveTextPos(0, -18); // Td
SelectFontAndSize("/F1", 12); // Tf
ShowText("(Test)"); // Tj
MoveTextPos(0, 0); // Td
EndTextObject(); // ET
RestoreGraphicsState(); // Q
BeginText(); // BT
SelectFontAndSize("/F1", 12); // Tf
MoveTextPos(88.66, 367); // Td
ShowText("(ld)"); // Tj
MoveTextPos(-22, 0); // Td
ShowText("(Wor)"); // Tj
MoveTextPos(-15.33, 0); // Td
ShowText("(llo)"); // Tj
MoveTextPos(-15.33, 0); // Td
ShowText("(He)"); // Tj
EndTextObject(); // ET
SaveGraphicsState(); // q
TransMatrix(1, 0, 0, 1, 36, 343); // cm
XObject("/Xf1"); // Do
RestoreGraphicsState(); // Q