質問編集履歴

6

微調整

2018/10/17 01:21

投稿

ophiacodon
ophiacodon

スコア24

test CHANGED
@@ -1 +1 @@
1
- TCPDFで出力したPDFファイルの文字化け
1
+ (PHP)TCPDFで出力したPDFファイルの文字化け
test CHANGED
@@ -6,7 +6,7 @@
6
6
 
7
7
  TCPDF以外のライブラリでも構いません。
8
8
 
9
- ### 発生している問題・エラーメッセージ![イメージ説明](e8e9889cb25b2ed0d2012f1bb84eec46.png)
9
+ ### 発生している問題・エラーメッセージ
10
10
 
11
11
  一部の環境で、部分的に文字化けが発生します。
12
12
 
@@ -18,9 +18,11 @@
18
18
 
19
19
  3.AcrobatReaderでは¥記号は、意図した通りの表示になりますがウムラウト文字が白い四角になります(Firefoxとは表示が異なる)。
20
20
 
21
+ 4.資料として貰っているpdfでは、いずれの環境でも正しく表示されます。(つまり原理的には可能なはず)![イメージ説明](e8e9889cb25b2ed0d2012f1bb84eec46.png)
22
+
21
23
  ### 該当のソースコード
22
24
 
23
- //TCPDFとvivaldii.ttf があればそのまま実行できます
25
+ TCPDFとVIVALDII.TTF があればそのまま実行できます
24
26
 
25
27
  ```php
26
28
 
@@ -70,8 +72,6 @@
70
72
 
71
73
  最初から入っているフォントではうまくいきます。
72
74
 
73
- 資料として貰っているpdfではvivaldiiフォントでいずれの環境でも正しく表示できます。
74
-
75
75
  ### 補足情報(FW/ツールのバージョンなど)
76
76
 
77
77
  PHP 5.3.8

5

TCPDFには拘らない

2018/10/17 01:21

投稿

ophiacodon
ophiacodon

スコア24

test CHANGED
File without changes
test CHANGED
@@ -4,7 +4,7 @@
4
4
 
5
5
  vivaldiiというフォントを埋め込みます。
6
6
 
7
-
7
+ TCPDF以外のライブラリでも構いません。
8
8
 
9
9
  ### 発生している問題・エラーメッセージ![イメージ説明](e8e9889cb25b2ed0d2012f1bb84eec46.png)
10
10
 
@@ -17,8 +17,6 @@
17
17
  2.FireFoxでは¥記号が黒い丸になり、äのようなウムラウト文字がおかしくなります。
18
18
 
19
19
  3.AcrobatReaderでは¥記号は、意図した通りの表示になりますがウムラウト文字が白い四角になります(Firefoxとは表示が異なる)。
20
-
21
-
22
20
 
23
21
  ### 該当のソースコード
24
22
 
@@ -54,8 +52,6 @@
54
52
 
55
53
  ```
56
54
 
57
-
58
-
59
55
  ### 試したこと
60
56
 
61
57
  vivaldii.php,vivaldii.z,vivaldii.ctg.zを削除の上、
@@ -76,8 +72,6 @@
76
72
 
77
73
  資料として貰っているpdfではvivaldiiフォントでいずれの環境でも正しく表示できます。
78
74
 
79
-
80
-
81
75
  ### 補足情報(FW/ツールのバージョンなど)
82
76
 
83
77
  PHP 5.3.8

4

原理上は可能な旨追記

2018/10/17 01:04

投稿

ophiacodon
ophiacodon

スコア24

test CHANGED
File without changes
test CHANGED
@@ -22,9 +22,9 @@
22
22
 
23
23
  ### 該当のソースコード
24
24
 
25
+ //TCPDFとvivaldii.ttf があればそのまま実行できます
26
+
25
27
  ```php
26
-
27
- //TCPDFとvivaldii.ttf があればそのまま実行できます
28
28
 
29
29
  include "./TCPDF/tcpdf.php";
30
30
 
@@ -72,9 +72,9 @@
72
72
 
73
73
  ```
74
74
 
75
+ 最初から入っているフォントではうまくいきます。
75
76
 
76
-
77
- 最初から入っているフォントではうまきます。
77
+ 資料として貰っているpdfではvivaldiiフォントでいずれの環境でも正し表示できます。
78
78
 
79
79
 
80
80
 

3

code の利用

2018/10/17 00:56

投稿

ophiacodon
ophiacodon

スコア24

test CHANGED
File without changes
test CHANGED
@@ -21,6 +21,8 @@
21
21
 
22
22
 
23
23
  ### 該当のソースコード
24
+
25
+ ```php
24
26
 
25
27
  //TCPDFとvivaldii.ttf があればそのまま実行できます
26
28
 
@@ -50,6 +52,8 @@
50
52
 
51
53
  $pdf->Output('test.pdf', 'I');
52
54
 
55
+ ```
56
+
53
57
 
54
58
 
55
59
  ### 試したこと
@@ -58,11 +62,15 @@
58
62
 
59
63
  TCPDF_FONTSのインスタンスを作成するやり方も試しました。
60
64
 
65
+ ```php
66
+
61
67
  $font = new TCPDF_FONTS();
62
68
 
63
69
  $pdf->setFontSubsetting(true);
64
70
 
65
71
  $font->addTTFfont('VIVALDII.TTF', 'TrueType', '', 32);
72
+
73
+ ```
66
74
 
67
75
 
68
76
 

2

最低限のコードに

2018/10/17 00:45

投稿

ophiacodon
ophiacodon

スコア24

test CHANGED
File without changes
test CHANGED
@@ -24,49 +24,19 @@
24
24
 
25
25
  //TCPDFとvivaldii.ttf があればそのまま実行できます
26
26
 
27
- $name='Yu Kaakkomäki';
28
-
29
- $money='¥10,000';
30
-
31
- $date='2018/1/1';
32
-
33
-
34
-
35
27
  include "./TCPDF/tcpdf.php";
36
28
 
37
- $width = 154;
29
+ $pageLayout = array(80, 20);
38
30
 
39
- $height = 101.6;
40
-
41
- //$img_file = 'certificate.png';
42
-
43
- class MYPDF extends TCPDF {
44
-
45
- public function Header() {
46
-
47
- $this->SetAutoPageBreak(false, 0);
48
-
49
- global $width, $height, $img_file;
50
-
51
- //$this->Image($img_file, 0, 0, $width, $height);
52
-
53
- }
54
-
55
- }
56
-
57
- $pageLayout = array($width, $height);
58
-
59
- $pdf = new MYPDF('L', 'mm', $pageLayout, true, 'UTF-8', false);
31
+ $pdf = new TCPDF('L', 'mm', $pageLayout, true, 'UTF-8', false);
60
32
 
61
33
  TCPDF_FONTS::addTTFfont('VIVALDII.TTF', 'TrueType', '', 32);
62
34
 
63
35
 
64
36
 
65
- $pdf->SetMargins(2.3, 50);
37
+ $pdf->SetAutoPageBreak(false, 0);
66
38
 
67
- $pdf->SetHeaderMargin(0);
39
+ $pdf->setPrintHeader(false);
68
-
69
- $pdf->SetFooterMargin(0);
70
40
 
71
41
  $pdf->setPrintFooter(false);
72
42
 
@@ -76,21 +46,7 @@
76
46
 
77
47
  $pdf->SetFont('vivaldii', '',30);
78
48
 
79
- $pdf->Cell(0,0,$name,0,2,'C',false,'',0,false,'L','M');
49
+ $pdf->Cell(0,0,'¥Kaakkomäki',0,2,'C',false,'',0,false,'L','M');
80
-
81
- $pdf->Ln(13);
82
-
83
- $pdf->Cell(0,0,$money,0,2,'C',false,'',0,false,'L','M');
84
-
85
- $pdf->Ln(25);
86
-
87
- $pdf->SetFont('times', '', 13);
88
-
89
- $pdf->SetTextColor(0xff,0xff,9);
90
-
91
- $pdf->Cell(23,0,$date,0,2,'C',false,'',0,false,'L','M');
92
-
93
-
94
50
 
95
51
  $pdf->Output('test.pdf', 'I');
96
52
 
@@ -110,6 +66,10 @@
110
66
 
111
67
 
112
68
 
69
+ 最初から入っているフォントではうまくいきます。
70
+
71
+
72
+
113
73
  ### 補足情報(FW/ツールのバージョンなど)
114
74
 
115
75
  PHP 5.3.8

1

不要なコードを削除

2018/10/16 17:55

投稿

ophiacodon
ophiacodon

スコア24

test CHANGED
File without changes
test CHANGED
@@ -22,6 +22,8 @@
22
22
 
23
23
  ### 該当のソースコード
24
24
 
25
+ //TCPDFとvivaldii.ttf があればそのまま実行できます
26
+
25
27
  $name='Yu Kaakkomäki';
26
28
 
27
29
  $money='¥10,000';
@@ -36,7 +38,7 @@
36
38
 
37
39
  $height = 101.6;
38
40
 
39
- $img_file = 'certificate.png';
41
+ //$img_file = 'certificate.png';
40
42
 
41
43
  class MYPDF extends TCPDF {
42
44
 
@@ -46,7 +48,7 @@
46
48
 
47
49
  global $width, $height, $img_file;
48
50
 
49
- $this->Image($img_file, 0, 0, $width, $height);
51
+ //$this->Image($img_file, 0, 0, $width, $height);
50
52
 
51
53
  }
52
54