powered by simpleCommunicator - 2.0.59     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / ASP.NET [игнор отключен] [закрыт для гостей] / iTextSharp и Кирилица
15 сообщений из 15, страница 1 из 1
iTextSharp и Кирилица
    #36500323
yura1985
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Добрый день всезнающий пинл. Прошу помощи у тех кто работал с библиотекой iTextSharp.
Мне нужно заполнить Pdf-форму (на пдфке есть текстовые поля). Английские вносит нормально а кирилицу нет (.

using iTextSharp.text;
using iTextSharp.text.pdf;
..........
FontFactory.Register("c:\\arial.ttf");
PdfReader reader = new PdfReader(formFile);
PdfStamper stamper = new PdfStamper(reader, new FileStream(newFile, FileMode.Create));
AcroFields fields = stamper.AcroFields;
fields.SetField("test1", Text1.Text);
fields.SetField("test2", Text2.Text);
stamper.FormFlattening = true;
stamper.Close();
Если Text1.Text или Text2.Text -- английский то все ок, если кирилица, то ничего в поля pdf-фо test1 и test2 не выводится :(. FontFactory.Register("c:\\arial.ttf") подключил..... что делать я не знаю:(.
...
Рейтинг: 0 / 0
iTextSharp и Кирилица
    #36500538
Фотография МСУ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Подгружайте нужный шрифт ttf:

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
Document document = new Document();     
try      
{              
    BaseFont baseFont = BaseFont.CreateFont(@"C:\arial.ttf", BaseFont.IDENTITY_H, BaseFont.NOT_EMBEDDED);
    iTextSharp.text.Font font = new iTextSharp.text.Font(baseFont, iTextSharp.text.Font.DEFAULTSIZE, iTextSharp.text.Font.NORMAL);
    using (FileStream stream = new FileStream(@"c:\Test.pdf", FileMode.Create))
    {
        PdfWriter.GetInstance(document, stream);
        document.Open();     
        String phrase = "Теперь iText знает русский язык!";
        document.Add(new Paragraph(phrase, font));
        document.Close();
    }
}     
catch (DocumentException ex)    
{
    Console.WriteLine(ex.Message);
}       
catch (IOException ex)  
{
    Console.WriteLine(ex.Message);
} 
...
Рейтинг: 0 / 0
iTextSharp и Кирилица
    #36500748
yura1985
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вот реальный текст, программы, вот так делаю, а русский не печатает:((
1.pdf-ки генерил с OpenOffice 3.0
2. arial.ttf - правельный
..... но что то не так:(


string formFile = @"C:\SHABLON_POSTANOVA_ARIAL.pdf";
string newFile = @"C:\test1\SHABLON_POSTANOVA_new.pdf";

BaseFont baseFont = BaseFont.CreateFont(@"C:\arial.ttf", BaseFont.IDENTITY_H, BaseFont.NOT_EMBEDDED);
iTextSharp.text.Font font = new iTextSharp.text.Font(baseFont, iTextSharp.text.Font.DEFAULTSIZE, iTextSharp.text.Font.NORMAL);

PdfReader reader = new PdfReader(formFile);
PdfStamper stamper = new PdfStamper(reader, new FileStream(newFile, FileMode.Create));
AcroFields fields = stamper.AcroFields;

fields.SetFieldProperty("postanova_seria", tb_postanova_seria.Text, font, null);
fields.SetField("postanova_seria", tb_postanova_seria.Text);

stamper.FormFlattening = true;
stamper.Close();
Огромное Вам спасибо, что пытаетесь помочь.
...
Рейтинг: 0 / 0
iTextSharp и Кирилица
    #36500875
yura1985
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ДА..... при формировании нового документа все ок....
но вот если брать какой то шаблон..... то не выводит русские буквы в поля:(.
где собака зарыта непонятно :(
...
Рейтинг: 0 / 0
iTextSharp и Кирилица
    #36996302
GreenGood
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
yura1985ДА..... при формировании нового документа все ок....
но вот если брать какой то шаблон..... то не выводит русские буквы в поля:(.
где собака зарыта непонятно :(
Это зависит от шрифта который был выставлен для поля в шаблоне. При создании шаблона у поля в свойствах ставьте Arial.
Плюс можно добавить нужный шрифт в коллекцию SubstitutionFonts у AcroFields при заполнении полей программно.
...
Рейтинг: 0 / 0
Период между сообщениями больше года.
iTextSharp и Кирилица
    #37840926
elano50
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
dydft
...
Рейтинг: 0 / 0
iTextSharp и Кирилица
    #37840934
elano50
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Друзья, сам долго разбирался с этой проблемой и наконец разобрался и решил это выложить дабы хоть как-то помочь тем, кто в будущем с этим столкнется.
Вот рабочий код. где таблицу datagridview я отображаю в pdf


private void button1_Click_1(object sender, EventArgs e)
{
var doc = new Document();
BaseFont baseFont = BaseFont.CreateFont(@"C:\Users\user\Documents\Visual Studio 2010\Projects\testovoe\ARIAL.TTF", BaseFont.IDENTITY_H, BaseFont.NOT_EMBEDDED);

iTextSharp.text.Font f = new iTextSharp.text.Font(baseFont, 12);

PdfWriter.GetInstance(doc, new FileStream(Application.StartupPath + @"\Document.pdf", FileMode.Create));
doc.Open();

PdfPTable table = new PdfPTable(4);
PdfPCell cell = new PdfPCell(new Phrase("Таблица",f));

int kolvostrok = this.dataGridView1.RowCount;

int indsto=0,indstr=0;
Paragraph g;
for (int i = 0; i < kolvostrok * 4;i++ )
{

g= new Paragraph(Convert.ToString(this.dataGridView1.Rows[indstr].Cells[indsto].Value),f);
table.AddCell(g); indsto++; if (indsto == 4) { indsto = 0; indstr++; } }


doc.Add(table);
doc.Close();
}
...
Рейтинг: 0 / 0
iTextSharp и Кирилица
    #37841022
Фотография МСУ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Что тут разбираться, я в первом посте написал решение - нужно создавать свой бейс фонт. Что может быть сложнее?
...
Рейтинг: 0 / 0
iTextSharp и Кирилица
    #37883197
.Anatoly.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
МСУ, подскажите как указать font, если мы парсим html, а не создаем код руками.
То есть, какому объектом из кода ниже нужно передать font?
Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
document.Open();
HtmlPipelineContext htmlContext = new HtmlPipelineContext(null);
htmlContext.SetTagFactory(Tags.GetHtmlTagProcessorFactory());
ICSSResolver cssResolver = XMLWorkerHelper.GetInstance().GetDefaultCssResolver(true);
IPipeline pipeline =
	new CssResolverPipeline(cssResolver,
		new HtmlPipeline(htmlContext,
				new PdfWriterPipeline(document, writer)));


XMLWorker worker = new XMLWorker(pipeline, true);
XMLParser p = new XMLParser(true, worker, Encoding.Unicode);

p.Parse((TextReader)File.OpenText(@"Template.html"));
document.Close();
...
Рейтинг: 0 / 0
iTextSharp и Кирилица
    #37883618
Фотография МСУ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
.Anatoly., к сожалению не работал через хтмл. Только традиционными способами :)
Надо на досуге пощупать.
...
Рейтинг: 0 / 0
iTextSharp и Кирилица
    #37883708
.Anatoly.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
МСУ, спасибо за ответ)
...
Рейтинг: 0 / 0
iTextSharp и Кирилица
    #37899333
Nilz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Для html можно следующее:

В коде добавить строку для регистрации шрифта (шрифтов)

Код: c#
1.
2.
3.
...
FontFactory.Register("c:\\arial.ttf"); // путь к файлу шрифта
...



А в html обязательно указать шрифт и кодировку.

Код: html
1.
2.
3.
<body face='Arial' encoding='koi8-r'>
...
</body>



если не нравиться атрибут face, то можно и в style='font-famaly:Arial'.

У меня получилось. Использовал 5.3.0 версию.
...
Рейтинг: 0 / 0
iTextSharp и Кирилица
    #37900723
.Anatoly.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Nilz, отличное решение
...
Рейтинг: 0 / 0
iTextSharp и Кирилица
    #37996696
Aldema
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
А если я хочу использовать - Arial с подчеркиванием, то как быть?
...
Рейтинг: 0 / 0
iTextSharp и Кирилица
    #38101370
.Anatoly.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Aldema, вы наверное уже и сами разобрались. Но я все равно отвечу - можно прописать в стилях
Код: css
1.
text-decoration: underline;
...
Рейтинг: 0 / 0
15 сообщений из 15, страница 1 из 1
Форумы / ASP.NET [игнор отключен] [закрыт для гостей] / iTextSharp и Кирилица
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]