قله بلند
یک شنبه 23 اسفند 1394, 09:25 صبح
باسلام
من لینک زیر رو دیدم
http://www.dotnettips.info/post/1160/%d8%a7%d8%b3%d8%aa%d8%ae%d8%b1%d8%a7%d8%ac-%d9%85%d8%aa%d9%86-%d8%a7%d8%b2-%d9%81%d8%a7%db%8c%d9%84%e2%80%8c%d9%87%d8%a7%db%8 c-pdf-%d8%aa%d9%88%d8%b3%d8%b7-itextsharp
بر این اساس، برنامه زیر درست کار می کنه:
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using iTextSharp.text.pdf;
using iTextSharp.text;
using iTextSharp.text.pdf.parser;
using System.Text.RegularExpressions;
using System.IO;
using System.Windows;
namespace WindowsFormsApplication1
{
public partial class Form5 : Form
{
public Form5()
{
InitializeComponent();
}
private void Form5_Load(object sender, EventArgs e)
{
writePdf2();
readPdf2();
}
private void readPdf2()
{
var reader = new PdfReader(@"C:\Users\USER\Desktop\Test2.pdf");
int intPageNum = reader.NumberOfPages;
string text = null;
for (int i = 1; i <= intPageNum; i++)
{
text = PdfTextExtractor.GetTextFromPage(reader, i, new LocationTextExtractionStrategy());
text = Encoding.UTF8.GetString(Encoding.UTF8.GetBytes(tex t.ToString()));
text = new UnicodeCharacterPlacement
{
Font = new System.Drawing.Font("Tahoma", 12)
}.Apply(text);
File.WriteAllText("page-" + i + "-text.txt", text.ToString());
}
reader.Close();
}
private void writePdf2()
{
using (var document = new Document(PageSize.A4))
{
var writer = PdfWriter.GetInstance(document, new FileStream(@"C:\Users\USER\Desktop\Test2.pdf", FileMode.Create));
document.Open();
FontFactory.Register("c:\\windows\\fonts\\tahoma.ttf");
var tahoma = FontFactory.GetFont("tahoma", BaseFont.IDENTITY_H);
ColumnText.ShowTextAligned(
canvas: writer.DirectContent,
alignment: Element.ALIGN_JUSTIFIED,
phrase: new Phrase("Test. Hello world. Hell people. سلام. کلمه سلام. سلام مردم", tahoma),
x: 300,
y: 300,
rotation: 0,
runDirection: PdfWriter.RUN_DIRECTION_RTL,
arabicOptions: 0);
}
System.Diagnostics.Process.Start(@"C:\Users\USER\Desktop\Test2.pdf");
}
}
}
اما:
1-من یک فایل پی دی اف دارم وممکنه با هر سازنده پی دی اف ساخته شده باشد. اما در این لینک گفته شده است که اینکد برای هر نوع پی دی افی کار نمی کند.
2-پس باید از پی دی اف موجود، پی دی افی ساخت و آن را خواند.
اما چگونه؟ آیا پاسخگو خواهد بود؟
من لینک زیر رو دیدم
http://www.dotnettips.info/post/1160/%d8%a7%d8%b3%d8%aa%d8%ae%d8%b1%d8%a7%d8%ac-%d9%85%d8%aa%d9%86-%d8%a7%d8%b2-%d9%81%d8%a7%db%8c%d9%84%e2%80%8c%d9%87%d8%a7%db%8 c-pdf-%d8%aa%d9%88%d8%b3%d8%b7-itextsharp
بر این اساس، برنامه زیر درست کار می کنه:
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using iTextSharp.text.pdf;
using iTextSharp.text;
using iTextSharp.text.pdf.parser;
using System.Text.RegularExpressions;
using System.IO;
using System.Windows;
namespace WindowsFormsApplication1
{
public partial class Form5 : Form
{
public Form5()
{
InitializeComponent();
}
private void Form5_Load(object sender, EventArgs e)
{
writePdf2();
readPdf2();
}
private void readPdf2()
{
var reader = new PdfReader(@"C:\Users\USER\Desktop\Test2.pdf");
int intPageNum = reader.NumberOfPages;
string text = null;
for (int i = 1; i <= intPageNum; i++)
{
text = PdfTextExtractor.GetTextFromPage(reader, i, new LocationTextExtractionStrategy());
text = Encoding.UTF8.GetString(Encoding.UTF8.GetBytes(tex t.ToString()));
text = new UnicodeCharacterPlacement
{
Font = new System.Drawing.Font("Tahoma", 12)
}.Apply(text);
File.WriteAllText("page-" + i + "-text.txt", text.ToString());
}
reader.Close();
}
private void writePdf2()
{
using (var document = new Document(PageSize.A4))
{
var writer = PdfWriter.GetInstance(document, new FileStream(@"C:\Users\USER\Desktop\Test2.pdf", FileMode.Create));
document.Open();
FontFactory.Register("c:\\windows\\fonts\\tahoma.ttf");
var tahoma = FontFactory.GetFont("tahoma", BaseFont.IDENTITY_H);
ColumnText.ShowTextAligned(
canvas: writer.DirectContent,
alignment: Element.ALIGN_JUSTIFIED,
phrase: new Phrase("Test. Hello world. Hell people. سلام. کلمه سلام. سلام مردم", tahoma),
x: 300,
y: 300,
rotation: 0,
runDirection: PdfWriter.RUN_DIRECTION_RTL,
arabicOptions: 0);
}
System.Diagnostics.Process.Start(@"C:\Users\USER\Desktop\Test2.pdf");
}
}
}
اما:
1-من یک فایل پی دی اف دارم وممکنه با هر سازنده پی دی اف ساخته شده باشد. اما در این لینک گفته شده است که اینکد برای هر نوع پی دی افی کار نمی کند.
2-پس باید از پی دی اف موجود، پی دی افی ساخت و آن را خواند.
اما چگونه؟ آیا پاسخگو خواهد بود؟