PHPExcel을 사용한 후 LibreOffice에서 명령으로 PDF 출력을 할 때의 문자 깨짐 대책
5798 단어 LibreOffice편지RHEL
케이스로서는
때 유효한 글꼴 변경 방법.
환경
현재 상태 확인
1. 인스코드 폰트 확인
$ fc-list
Liberation Mono:style=Regular
DejaVu Serif,DejaVu Serif Condensed:style=Condensed,Book
DejaVu Serif,DejaVu Serif Condensed:style=Condensed Bold Italic,Bold Italic
DejaVu Serif,DejaVu Serif Condensed:style=Condensed Bold,Bold
Liberation Sans:style=Regular
DejaVu Sans,DejaVu Sans Condensed:style=Condensed Oblique,Oblique
DejaVu Sans Mono:style=Bold Oblique
Carlito:style=Italic
Liberation Serif:style=Bold Italic
Caladea:style=Bold
DejaVu Serif:style=Bold Italic
OpenSymbol:style=Regular
Caladea:style=Bold Italic,Italic
DejaVu Sans:style=Bold Oblique
Carlito:style=Regular
Liberation Serif:style=Bold
Liberation Mono:style=Bold Italic
DejaVu Sans:style=Oblique
Liberation Sans:style=Bold
DejaVu Sans Mono:style=Oblique
Carlito:style=Bold Italic
DejaVu Sans,DejaVu Sans Condensed:style=Condensed Bold Oblique,Bold Oblique
Caladea:style=Italic
Carlito:style=Bold
Liberation Serif:style=Regular
VL Pゴシック,VL PGothic:style=regular
DejaVu Sans,DejaVu Sans Light:style=ExtraLight
Liberation Sans:style=Bold Italic
IPAゴシック,IPAGothic:style=Regular
DejaVu Sans,DejaVu Sans Condensed:style=Condensed,Book
DejaVu Sans,DejaVu Sans Condensed:style=Condensed Bold,Bold
Liberation Mono:style=Bold
IPA Pゴシック,IPAPGothic:style=Regular
DejaVu Serif,DejaVu Serif Condensed:style=Condensed Italic,Italic
Caladea:style=Regular
DejaVu Sans:style=Bold
DejaVu Sans:style=Book
DejaVu Serif:style=Italic
DejaVu Sans Mono:style=Book
IPA明朝,IPAMincho:style=Regular
DejaVu Sans Mono:style=Bold
Liberation Serif:style=Italic
Liberation Mono:style=Italic
IPA P明朝,IPAPMincho:style=Regular
Liberation Sans:style=Italic
VL ゴシック,VL Gothic:style=regular
DejaVu Serif:style=Book
DejaVu Serif:style=Bold
2. PDF 출력된 글꼴 확인
Adobe Acrobat이라든가 「Command+d」의 문장 프로퍼티내 「폰트」탭에서 확인할 수 있다.
이 때, DejaVuSans계나 IPAGothic, VL 어떻게든이 원인으로 문자화를 하고 있다고 판단할 수 있다.
IPAGothic이라든지는 문자화되지 않을 가능성이 높다고 생각되지만, 간단하게 잘 되지 않았기 때문에 IPAexGothic를 사용하기로 한다.
폰트 인스코
1. IPAGothic 다운로드
여기 에서 여러분에게 제대로 읽고 문제 없으면 동의해 다운로드.
2. 압축 해제 및 업로드
생략. 적당히 서버에 올립니다.
(여기에서는 IPAex 고딕을 사용합니다)
3. 글꼴 파일 배치
루트 권한을 가진 사용자
$ mkdir /usr/share/fonts/ipa-ex-gothic
라는 느낌으로 적당히 폴더를 만든다.
그리고 안에 「1.」로 다운로드/해동한 폰트 파일을 넣으면 된다.
Permission을 0644로 둔다.
$ cp /home/ykeisuke/fonts/ipaexg.ttf /usr/share/fonts/ipa-ex-gothic/
$ chmod 0644 /usr/share/fonts/ipa-ex-gothic/ipaexg.ttf
4. 글꼴 캐시 삭제
$ fc-cache -fv
/usr/share/fonts: caching, new cache contents: 0 fonts, 11 dirs
/usr/share/fonts/dejavu: caching, new cache contents: 21 fonts, 0 dirs
/usr/share/fonts/google-crosextra-caladea: caching, new cache contents: 4 fonts, 0 dirs
/usr/share/fonts/google-crosextra-carlito: caching, new cache contents: 4 fonts, 0 dirs
/usr/share/fonts/ipa-ex-gochic: caching, new cache contents: 1 fonts, 0 dirs
/usr/share/fonts/ipa-gothic: caching, new cache contents: 1 fonts, 0 dirs
/usr/share/fonts/ipa-mincho: caching, new cache contents: 1 fonts, 0 dirs
/usr/share/fonts/ipa-pgothic: caching, new cache contents: 1 fonts, 0 dirs
/usr/share/fonts/ipa-pmincho: caching, new cache contents: 1 fonts, 0 dirs
/usr/share/fonts/liberation: caching, new cache contents: 12 fonts, 0 dirs
/usr/share/fonts/opensymbol: caching, new cache contents: 1 fonts, 0 dirs
/usr/share/fonts/vlgothic: caching, new cache contents: 2 fonts, 0 dirs
/usr/share/X11/fonts/Type1: skipping, no such directory
/usr/share/X11/fonts/TTF: skipping, no such directory
/usr/local/share/fonts: skipping, no such directory
/root/.fonts: skipping, no such directory
/var/cache/fontconfig: cleaning cache directory
/root/.fontconfig: not cleaning non-existent cache directory
fc-cache: succeeded
5. 글꼴 목록
「3.」로 배치한 폰트가 인스코되어 리스트에 들어가 있는 것을 알 수 있다
$ fc-list
(略)
IPAexゴシック,IPAexGothic:style=Regular
(略)
PHPExcel을 읽는 곳에 손 추가
폰트를 인스코한 단계에서 낫으면 좋았지만, 낫지 않았다.
Mac의 MS-Excel측에서 폰트를 지정했지만 PHPExcel로 출력되는 Excel 파일의 폰트는 방금 전 인스코한 것이 되어 있는데 PDF에서는 변하지 않았다든가 있었다.
Mac의 LibreOffice에서 다시 저장하거나 PHPexcel인지 LibreOffice인지 문제를 구분해라든지 여러가지 있지만, PHPExcel+LibreOffice4의 조합은 당분간 상관없다는 판단하에 특정 그만두었다.
$reader = PHPExcel_IOFactory::createReader('Excel5');
$excel = $reader->load("/INPUT/YOUR/EXCEL/PATH");
$sheet = $excel->getSheetByName("input_your_sheet_name");
$sheet->getDefaultStyle()->getFont()->setName('IPAexGothic');
느낌으로 명확하게 지정한다.
이때 IPAexGothic
는 fc-list로 나온 명칭이 될거야.
마지막으로
RHEL6계의 OS로, PHP로 깨끗한 PDF를 토해내는 방법이라고 하면 무엇일까?
LibreOffice4를 커맨드 라인으로 호출하면 가장 깨끗한 (전 Excel에 가까운 형태)로 내뱉을 수 있었다.
LibreOffice의 원래 OpenOffice를 만지지 않습니다.
fPDF라든지 ftPDF라든지는, 조금 만졌습니다만 간단한 HTML을 만들어 호출하는 분에는 문제 없다고 생각하지만, 여러가지 코드를 쓰거나 하지 않으면 안 되는 느낌이 들었기 때문에 배웠다.
엑셀 파일 PDF 변환 라이브러리라든가 하고 싶지 않다.
이상에 의해 아무것도 생각하지 않고 Excel 파일이 나름대로 좋은 느낌으로 출력되는 LibreOffice가 최강이라고 결론에 있었다
Reference
이 문제에 관하여(PHPExcel을 사용한 후 LibreOffice에서 명령으로 PDF 출력을 할 때의 문자 깨짐 대책), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/YKEI_mrn/items/f15bec5166ccadb237e5
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
$ fc-list
Liberation Mono:style=Regular
DejaVu Serif,DejaVu Serif Condensed:style=Condensed,Book
DejaVu Serif,DejaVu Serif Condensed:style=Condensed Bold Italic,Bold Italic
DejaVu Serif,DejaVu Serif Condensed:style=Condensed Bold,Bold
Liberation Sans:style=Regular
DejaVu Sans,DejaVu Sans Condensed:style=Condensed Oblique,Oblique
DejaVu Sans Mono:style=Bold Oblique
Carlito:style=Italic
Liberation Serif:style=Bold Italic
Caladea:style=Bold
DejaVu Serif:style=Bold Italic
OpenSymbol:style=Regular
Caladea:style=Bold Italic,Italic
DejaVu Sans:style=Bold Oblique
Carlito:style=Regular
Liberation Serif:style=Bold
Liberation Mono:style=Bold Italic
DejaVu Sans:style=Oblique
Liberation Sans:style=Bold
DejaVu Sans Mono:style=Oblique
Carlito:style=Bold Italic
DejaVu Sans,DejaVu Sans Condensed:style=Condensed Bold Oblique,Bold Oblique
Caladea:style=Italic
Carlito:style=Bold
Liberation Serif:style=Regular
VL Pゴシック,VL PGothic:style=regular
DejaVu Sans,DejaVu Sans Light:style=ExtraLight
Liberation Sans:style=Bold Italic
IPAゴシック,IPAGothic:style=Regular
DejaVu Sans,DejaVu Sans Condensed:style=Condensed,Book
DejaVu Sans,DejaVu Sans Condensed:style=Condensed Bold,Bold
Liberation Mono:style=Bold
IPA Pゴシック,IPAPGothic:style=Regular
DejaVu Serif,DejaVu Serif Condensed:style=Condensed Italic,Italic
Caladea:style=Regular
DejaVu Sans:style=Bold
DejaVu Sans:style=Book
DejaVu Serif:style=Italic
DejaVu Sans Mono:style=Book
IPA明朝,IPAMincho:style=Regular
DejaVu Sans Mono:style=Bold
Liberation Serif:style=Italic
Liberation Mono:style=Italic
IPA P明朝,IPAPMincho:style=Regular
Liberation Sans:style=Italic
VL ゴシック,VL Gothic:style=regular
DejaVu Serif:style=Book
DejaVu Serif:style=Bold
1. IPAGothic 다운로드
여기 에서 여러분에게 제대로 읽고 문제 없으면 동의해 다운로드.
2. 압축 해제 및 업로드
생략. 적당히 서버에 올립니다.
(여기에서는 IPAex 고딕을 사용합니다)
3. 글꼴 파일 배치
루트 권한을 가진 사용자
$ mkdir /usr/share/fonts/ipa-ex-gothic
라는 느낌으로 적당히 폴더를 만든다.
그리고 안에 「1.」로 다운로드/해동한 폰트 파일을 넣으면 된다.
Permission을 0644로 둔다.
$ cp /home/ykeisuke/fonts/ipaexg.ttf /usr/share/fonts/ipa-ex-gothic/
$ chmod 0644 /usr/share/fonts/ipa-ex-gothic/ipaexg.ttf
4. 글꼴 캐시 삭제
$ fc-cache -fv
/usr/share/fonts: caching, new cache contents: 0 fonts, 11 dirs
/usr/share/fonts/dejavu: caching, new cache contents: 21 fonts, 0 dirs
/usr/share/fonts/google-crosextra-caladea: caching, new cache contents: 4 fonts, 0 dirs
/usr/share/fonts/google-crosextra-carlito: caching, new cache contents: 4 fonts, 0 dirs
/usr/share/fonts/ipa-ex-gochic: caching, new cache contents: 1 fonts, 0 dirs
/usr/share/fonts/ipa-gothic: caching, new cache contents: 1 fonts, 0 dirs
/usr/share/fonts/ipa-mincho: caching, new cache contents: 1 fonts, 0 dirs
/usr/share/fonts/ipa-pgothic: caching, new cache contents: 1 fonts, 0 dirs
/usr/share/fonts/ipa-pmincho: caching, new cache contents: 1 fonts, 0 dirs
/usr/share/fonts/liberation: caching, new cache contents: 12 fonts, 0 dirs
/usr/share/fonts/opensymbol: caching, new cache contents: 1 fonts, 0 dirs
/usr/share/fonts/vlgothic: caching, new cache contents: 2 fonts, 0 dirs
/usr/share/X11/fonts/Type1: skipping, no such directory
/usr/share/X11/fonts/TTF: skipping, no such directory
/usr/local/share/fonts: skipping, no such directory
/root/.fonts: skipping, no such directory
/var/cache/fontconfig: cleaning cache directory
/root/.fontconfig: not cleaning non-existent cache directory
fc-cache: succeeded
5. 글꼴 목록
「3.」로 배치한 폰트가 인스코되어 리스트에 들어가 있는 것을 알 수 있다
$ fc-list
(略)
IPAexゴシック,IPAexGothic:style=Regular
(略)
PHPExcel을 읽는 곳에 손 추가
폰트를 인스코한 단계에서 낫으면 좋았지만, 낫지 않았다.
Mac의 MS-Excel측에서 폰트를 지정했지만 PHPExcel로 출력되는 Excel 파일의 폰트는 방금 전 인스코한 것이 되어 있는데 PDF에서는 변하지 않았다든가 있었다.
Mac의 LibreOffice에서 다시 저장하거나 PHPexcel인지 LibreOffice인지 문제를 구분해라든지 여러가지 있지만, PHPExcel+LibreOffice4의 조합은 당분간 상관없다는 판단하에 특정 그만두었다.
$reader = PHPExcel_IOFactory::createReader('Excel5');
$excel = $reader->load("/INPUT/YOUR/EXCEL/PATH");
$sheet = $excel->getSheetByName("input_your_sheet_name");
$sheet->getDefaultStyle()->getFont()->setName('IPAexGothic');
느낌으로 명확하게 지정한다.
이때 IPAexGothic
는 fc-list로 나온 명칭이 될거야.
마지막으로
RHEL6계의 OS로, PHP로 깨끗한 PDF를 토해내는 방법이라고 하면 무엇일까?
LibreOffice4를 커맨드 라인으로 호출하면 가장 깨끗한 (전 Excel에 가까운 형태)로 내뱉을 수 있었다.
LibreOffice의 원래 OpenOffice를 만지지 않습니다.
fPDF라든지 ftPDF라든지는, 조금 만졌습니다만 간단한 HTML을 만들어 호출하는 분에는 문제 없다고 생각하지만, 여러가지 코드를 쓰거나 하지 않으면 안 되는 느낌이 들었기 때문에 배웠다.
엑셀 파일 PDF 변환 라이브러리라든가 하고 싶지 않다.
이상에 의해 아무것도 생각하지 않고 Excel 파일이 나름대로 좋은 느낌으로 출력되는 LibreOffice가 최강이라고 결론에 있었다
Reference
이 문제에 관하여(PHPExcel을 사용한 후 LibreOffice에서 명령으로 PDF 출력을 할 때의 문자 깨짐 대책), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/YKEI_mrn/items/f15bec5166ccadb237e5
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
$reader = PHPExcel_IOFactory::createReader('Excel5');
$excel = $reader->load("/INPUT/YOUR/EXCEL/PATH");
$sheet = $excel->getSheetByName("input_your_sheet_name");
$sheet->getDefaultStyle()->getFont()->setName('IPAexGothic');
RHEL6계의 OS로, PHP로 깨끗한 PDF를 토해내는 방법이라고 하면 무엇일까?
LibreOffice4를 커맨드 라인으로 호출하면 가장 깨끗한 (전 Excel에 가까운 형태)로 내뱉을 수 있었다.
LibreOffice의 원래 OpenOffice를 만지지 않습니다.
fPDF라든지 ftPDF라든지는, 조금 만졌습니다만 간단한 HTML을 만들어 호출하는 분에는 문제 없다고 생각하지만, 여러가지 코드를 쓰거나 하지 않으면 안 되는 느낌이 들었기 때문에 배웠다.
엑셀 파일 PDF 변환 라이브러리라든가 하고 싶지 않다.
이상에 의해 아무것도 생각하지 않고 Excel 파일이 나름대로 좋은 느낌으로 출력되는 LibreOffice가 최강이라고 결론에 있었다
Reference
이 문제에 관하여(PHPExcel을 사용한 후 LibreOffice에서 명령으로 PDF 출력을 할 때의 문자 깨짐 대책), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/YKEI_mrn/items/f15bec5166ccadb237e5텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)