SQLite, Preferences, файлы, SD, Content Provider, XML, JSON
-
Rustam
- Сообщения: 40
- Зарегистрирован: 13 апр 2014, 11:38
Сообщение
Rustam » 13 янв 2015, 14:46
здравствуйте!
Вопрос такой
каким образом научить itext ладить с русскими буквами
перепробовал все способы, что нашел в инете ,в том числе и через настройку "Cp1251"
англ буквы без проблем, но вот с русскими беда
или подскажите другую библиотеку для работы с pdf
сейчас
Код: Выделить всё
BaseFont baseFNT=BaseFont.createFont(BaseFont.COURIER, "Cp1251", BaseFont.NOT_EMBEDDED);
Font font=new Font(baseFNT,30,Font.NORMAL);
docPDF.add(new Paragraph("ТЕКСТ", font));
также пробовал в /assets запихнуть шрифт от винды times.ttf
Код: Выделить всё
BaseFont baseFNT=BaseFont.createFont("TIMES.TTF", "Cp1251", BaseFont.NOT_EMBEDDED);
строка ошибки не выдает - но текст все равно отсутствует
-
Rustam
- Сообщения: 40
- Зарегистрирован: 13 апр 2014, 11:38
Сообщение
Rustam » 13 янв 2015, 18:27
ладно кому пригодиться для работы с pdf и itext
кидаем файл с шрифтом в assets
потом делаем следующее
Код: Выделить всё
BaseFont baseFNT=BaseFont.createFont("/assets/TIMES.TTF", BaseFont.IDENTITY_H, BaseFont.EMBEDDED);
Font font=new Font(baseFNT,30,Font.NORMAL);
docPDF.add(new Paragraph("и что угодно можно тут писать йоптыть",font));
и работает все
в pdf отражаются русские буквы
-
Anzik
- Сообщения: 22
- Зарегистрирован: 20 янв 2015, 20:06
Сообщение
Anzik » 22 янв 2015, 17:54
package com.anzik.z;
import android.content.Intent;
import android.os.Bundle;
import android.os.Environment;
import android.support.v7.app.ActionBarActivity;
import android.view.Menu;
import android.view.MenuItem;
import java.io.File;
import java.io.FileOutputStream;
import java.io.InputStream;
public class PdfActivity extends ActionBarActivity {
public int getPreviousPageImageResource() { return R.drawable.left_arrow; }
public int getNextPageImageResource() { return R.drawable.right_arrow; }
public int getZoomInImageResource() { return R.drawable.zoom_in; }
public int getZoomOutImageResource() { return R.drawable.zoom_out; }
public int getPdfPasswordLayoutResource() { return R.layout.pdf_file_password; }
public int getPdfPageNumberResource() { return R.layout.dialog_pagenumber; }
public int getPdfPasswordEditField() { return R.id.etPassword; }
public int getPdfPasswordOkButton() { return R.id.btOK; }
public int getPdfPasswordExitButton() { return R.id.btExit; }
public int getPdfPageNumberEditField() { return R.id.pagenum_edit; }
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
File sdCard = Environment.getExternalStorageDirectory();
File dir = new File (sdCard.getAbsolutePath() + "/pdf");
dir.mkdirs();
File f = new File(dir,"book.pdf");
if (!f.exists()) try {
InputStream is = getAssets().open("book.pdf");
int size = is.available();
byte[] buffer = new byte[size];
is.read(buffer);
is.close();
FileOutputStream fos = new FileOutputStream(f);
fos.write(buffer);
fos.close();
} catch (Exception e) { throw new RuntimeException(e); }
String path = f.getPath();
Intent intent = new Intent(this, PdfActivity.class);
intent.putExtra(PdfActivity.EXTRA_PDFFILENAME, path);
startActivity(intent);
}
Не могу указать путь к файлу.
-
Yoko999
- Сообщения: 1
- Зарегистрирован: 11 ноя 2016, 09:20
Сообщение
Yoko999 » 11 ноя 2016, 09:25
Rustam писал(а):ладно кому пригодиться для работы с pdf и itext
кидаем файл с шрифтом в assets
потом делаем следующее
Код: Выделить всё
BaseFont baseFNT=BaseFont.createFont("/assets/TIMES.TTF", BaseFont.IDENTITY_H, BaseFont.EMBEDDED);
Font font=new Font(baseFNT,30,Font.NORMAL);
docPDF.add(new Paragraph("и что угодно можно тут писать йоптыть",font));
и работает все
в pdf отражаются русские буквы
Мне почему-то не помогает. Производится парсинг html.... Русских букв в результирующем pdf всё равно не видит. Установка font-family в style для тега body не помогает:
Код: Выделить всё
Paragraph p = new Paragraph();
p.setFont(font);
XMLWorkerHelper xwh = XMLWorkerHelper.getInstance();
ElementList htmlList = xwh.parseToElementList(htmlDocument.toString(), null);
for (Element element : htmlList) {
p.add(element);
}
document.add(p);
-
gee12
- Сообщения: 1
- Зарегистрирован: 12 ноя 2018, 16:32
Сообщение
gee12 » 12 ноя 2018, 16:36
Rustam писал(а):кидаем файл с шрифтом в assets
Спасибо, помог!
Yoko999 писал(а):Мне почему-то не помогает.
Как оказалось, метод setFont() работает некорректно:
Код: Выделить всё
// так работает
Phrase phrase = new Phrase(data, font);
// так НЕ работает
Phrase phrase = new Phrase(data);
phrase.setFont(font);