Skip to main content
Interwork Corporation
IDR Solutions Product Support Portal
モードの切替 ダーク/ライト/自動 モードの切替 ダーク/ライト/自動 モードの切替 ダーク/ライト/自動

マウスイベントからページ座標を取得する方法

マウスイベントからページ座標を取得するには、カスタムマウスリスナーを作成し、外部ハンドラーとして追加する必要があります。

final Viewer viewer = new Viewer();
viewer.setupViewer();
viewer.executeCommand(ViewerCommands.OPENFILE, "inputFile.pdf");

final SwingGUI gui = viewer.getSwingGUI();
final SwingMouseFunctionality listener = new SwingMouseSelector(gui.getPdfDecoder(), gui, gui.getValues(), gui.getCommand()) {
    @Override
    public void mouseReleased(final MouseEvent e) {
        final Point p = getCoordsOnPage(e.getX(), e.getY(), viewer.getPdfDecoder().getPageNumber());
    }
};

viewer.getPdfDecoder().addExternalHandler(listener, Options.CustomMouseHandler);

Javaは左上を原点とする座標系を使用しますが、PDFは左下を原点とする座標系を使用するため、AffineTransformを使って出力を垂直方向に反転させる必要がある場合があります。PDFファイルのページ座標について詳しく知りたい場合は、こちらのブログ記事 をご覧ください。