java page是什么_java – 如何获取pdfpage内容

我正在使用pdfviewer查看我的pdf,我添加了一个搜索按钮到框架.当我点击搜索按钮时,它要求搜索单词.当我输入搜索词时,它应该将搜索词与pdfpage内容进行比较,如果匹配它应该显示相等.我已经编写了一个搜索方法,并且在该方法中我将搜索词与pdfpage内容进行比较.我在这里进行了调查.如何获取pdfPage内容并将此内容与搜索词进行比较.我有的代码如下.

import java.awt.BorderLayout;

import java.awt.Dimension;

import java.awt.FlowLayout;

import java.awt.Label;

import java.awt.Toolkit;

import java.awt.event.ActionEvent;

import java.awt.event.ActionListener;

import javax.swing.JButton;

import javax.swing.JDialog;

import javax.swing.JFrame;

import javax.swing.JPanel;

import javax.swing.JScrollPane;

import javax.swing.JTextField;

import javax.swing.SwingUtilities;

import javax.swing.event.DocumentEvent;

import javax.swing.event.DocumentListener;

import com.google.common.base.CharMatcher;

import com.sun.pdfview.PDFFile;

import com.sun.pdfview.PagePanel;

public class PdfViewer extends JPanel {

private static enum Navigation {

GO_FIRST_PAGE, FORWARD, BACKWARD, GO_LAST_PAGE, GO_N_PAGE

}

private static final CharMatcher POSITIVE_DIGITAL = CharMatcher.anyOf("0123456789");

private static final String GO_PAGE_TEMPLATE = "%s of %s";

private static final int FIRST_PAGE = 1;

private int currentPage = FIRST_PAGE;

private JButton btnFirstPage;

private JButton btnPreviousPage;

private JTextField txtGoPage;

private JButton btnNextPage;

private JButton btnLastPage;

private JButton print;

private JButton search;

private PagePanel pagePanel;

private static PDFFile pdfFile;

static int count;

static String text;

static String parsedText;

static JTextField jTextField;

public PdfViewer() {

initial();

}

private void initial() {

setLayout(new BorderLayout(0, 0));

JPanel topPanel = new JPanel(new FlowLayout(FlowLayout.CENTER));

add(topPanel, BorderLayout.NORTH);

btnFirstPage = createButton("|<

topPanel.add(btnFirstPage);

btnPreviousPage = createButton("<

topPanel.add(btnPreviousPage);

txtGoPage = new JTextField(10);

txtGoPage.setHorizontalAlignment(JTextField.CENTER);

topPanel.add(txtGoPage);

btnNextPage = createButton(">>");

topPanel.add(btnNextPage);

btnLastPage = createButton(">>|");

topPanel.add(btnLastPage);

search = new JButton("search");

topPanel.add(search);

JScrollPane scrollPane = new JScrollPane();

add(scrollPane, BorderLayout.CENTER);

JPanel viewPanel = new JPanel(new BorderLayout(0, 0));

scrollPane.setViewportView(viewPanel);

pagePanel = new PagePanel();

Dimension screenSize = Toolkit.getDefaultToolkit().getScreenSize();

pagePanel.setPreferredSize(screenSize);

viewPanel.add(pagePanel, BorderLayout.CENTER);

// disableAllNavigationButton();

search.addActionListener(new Action1());

}

private JButton createButton(String string) {

return new JButton(string);

}

class Action1 implements ActionListener {

@Override

public void actionPerformed(ActionEvent e) {

JDialog jDialog = new JDialog(SwingUtilities.getWindowAncestor(search));

Label label = new Label("Search: ");

final JTextField jTextField = new JTextField(10);

jTextField.addActionListener(new ActionListener() {

@Override

public void actionPerformed(ActionEvent e) {

// Here perform search in PDF

text = jTextField.getText();

search(pdfFile,text);

System.out.println("Search for text " + jTextField.getText() + " requested");

}

});

// If you want to react to every change of text in the textfield, you can

// use a DocumentListener and invoke the search method for all events.

jTextField.getDocument().addDocumentListener(new DocumentListener() {

@Override

public void removeUpdate(DocumentEvent e) {

}

@Override

public void insertUpdate(DocumentEvent e) {

}

@Override

public void changedUpdate(DocumentEvent e) {

}

});

JPanel panel = new JPanel();

jDialog.add(panel);

panel.add(label);

panel.add(jTextField);

jDialog.pack();

jDialog.setLocationRelativeTo(search);

jDialog.setVisible(true);

}

}

public static void search(String parsedText,String text) {

count = 0;

int lastIndex = 0;

while(lastIndex != -1){

lastIndex = parsedText.indexOf(text,lastIndex);

if( lastIndex != -1){

count ++;

lastIndex+=text.length();

System.out.println("Count value is :::::" + count);

}

}

}

}

在主要方法中,我添加了以下代码行,用于将文档转换为文本.

PDDocument doc = PDDocument.load(file);

PDFTextStripper stripper = new PDFTextStripper();

parsedText=stripper.getText(doc);

我跟随pdfviewer的参考链接是

我能够获得pdfpage.But问题是我如何获得该特定页面中的内容.任何帮助将不胜感激.

谢谢.

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值