- PR -

PDFファイル内容の日本語文字表示が出来るように方法?。

1
投稿者投稿内容
未記入
会議室デビュー日: 2005/10/20
投稿数: 2
投稿日時: 2005-10-21 15:55
すみませんが、
●質問;PDF内容で英語文字書いた("A.PDF")は出力しましたけど、 
    日本語PDF内容で("B.PDF")のみは出力しませんでした
    日本語文字が表示になる方法を教えてください。

●ソース PROGRAM

import com.adobe.acrobat.*;
import com.adobe.acrobat.sidecar.*;
import java.awt.*;
import java.awt.event.*;
import java.io.*;
import javax.swing.*;

public class testacrobat extends JFrame {
private MyCanvas meinCanvas = new MyCanvas();
private Image meinImage;
private int x = 400;
private int y = 400;
private int page = 0;
private PDFDocument doc;
private FloatPoint cropBoxSize;

public testacrobat() {
try {
doc = new PDFDocument(new File("B.pdf"));
cropBoxSize = doc.getPageSize(page);
jbInit();
} catch (Exception e) {
e.printStackTrace();
}
}

public static void main(String[] args) {
testacrobat testacrobat1 = new testacrobat();
}

private Image createImageFromPDF(Component anyComponent, int width,
int height) {
try {
float hScale = (float) ((width) / cropBoxSize.x);
float vScale = (float) ((height) / cropBoxSize.y);
float scale = (float) Math.max(hScale, vScale);
AffineTransform transform = new AffineTransform(hScale, 0, 0,
vScale, 0, 0);
int h = (int) (cropBoxSize.y * vScale);
int w = (int) (cropBoxSize.x * hScale);
Image img = anyComponent.createImage(w, h);
-----> doc.drawPage(page, img, transform, null, anyComponent);

return img;
} catch (Exception e) {
e.printStackTrace();
}
return null;
}
private void jbInit() throws Exception {
this.show();
setSize(410, 410);
this.addComponentListener(new java.awt.event.ComponentAdapter() {
public void componentResized(ComponentEvent e) {
this_componentResized(e);
}
});
meinImage = createImageFromPDF(this, x, y);

this.getContentPane().add(meinCanvas, 0);

WindowAdapter adapter = new WindowAdapter() {
public void windowClosing(WindowEvent event) {
System.exit(0);
}
};

this.addWindowListener(adapter);
this.pack();
}

void this_componentResized(ComponentEvent e) {
y = e.getComponent().getHeight();
x = e.getComponent().getWidth();
meinImage = createImageFromPDF(this, x, y);
}

public class MyCanvas extends Canvas {
public Dimension getMinimumSize() {
return new Dimension(100, 100);
}

public Dimension getPreferredSize() {
return new Dimension(x, y);
}

public void paint(Graphics g) {
g.drawImage(meinImage, 0, 0, x, y, new Color(0, 0, 0), null);
}
}
}
KIN
会議室デビュー日: 2004/09/27
投稿数: 5
投稿日時: 2005-10-23 22:13
こんばんは。どこがわからないのでしょうか?
具体的に記述していただけないと、レスはつきにくいと思いますよ。

英字のPDFは表示(出力?)できるのでしたら、
マルチバイト形式にコンポーネントが未対応、もしくはコンポーネント自体に
バグがあるのではないでしょうか?

どちらにしても、マルチバイトに対応できるように処理を
追加しなければいけなさそうですが・・・
かつのり
ぬし
会議室デビュー日: 2004/03/18
投稿数: 2015
お住まい・勤務地: 札幌
投稿日時: 2005-10-23 22:25
http://www.vc-net.ne.jp/~ytp/bbs/java/bbs24454.html
こちらの情報を参考にされてみては如何でしょうか。
1

スキルアップ/キャリアアップ(JOB@IT)