使用java应用程序管理多个文档扫描
我正在尝试制作一个应用程序来扫描扫描仪上的文档,我发现了一个基于我在github中找到的mmscomputing免费库的应用程序 它显示一个面板,从中可以从可用扫描仪列表中选择扫描仪并扫描文档使用java应用程序管理多个文档扫描,java,twain,Java,Twain,我正在尝试制作一个应用程序来扫描扫描仪上的文档,我发现了一个基于我在github中找到的mmscomputing免费库的应用程序 它显示一个面板,从中可以从可用扫描仪列表中选择扫描仪并扫描文档 public void getScan() { try { scanner.acquire(); } catch (ScannerIOException e1) { IJ.showMessage("Access den
public void getScan()
{
try
{
scanner.acquire();
}
catch (ScannerIOException e1)
{
IJ.showMessage("Access denied! \nTwain dialog maybe already opened!");
e1.printStackTrace();
}
}
public Image getImage()
{
Image image = imp.getImage();
return image;
}
public void update(ScannerIOMetadata.Type type, ScannerIOMetadata metadata) {
if (type.equals(ScannerIOMetadata.ACQUIRED))
{
if(imp!=null)
{
jContentPane.remove(ipanel);
jContentPane.remove(cpanel);
jContentPane.remove(crpdpanel);
}
imp = new ImagePlus("Scan", metadata.getImage());
im = imp.getImage();
imagePanel = new ImagePanel(im);
imagePanel.updateUI();
imagePanel.repaint();
imagePanel.revalidate();
ClipMover mover = new ClipMover(imagePanel);
imagePanel.addMouseListener(mover);
imagePanel.addMouseMotionListener(mover);
ipanel = imagePanel.getPanel();
ipanel.setBorder(new LineBorder(Color.blue,1));
ipanel.setBorder(BorderFactory.createTitledBorder("Scanned Image"));
ipanel.setBounds(0, 30,600, 600);
ipanel.repaint();
ipanel.revalidate();
ipanel.updateUI();
jContentPane.add(ipanel);
jContentPane.getRootPane().revalidate();
jContentPane.updateUI();
cpanel = imagePanel.getUIPanel();
cpanel.setBounds(700, 30,300, 150);
cpanel.repaint();
cpanel.setBorder(new LineBorder(Color.blue,1));
cpanel.setBorder(BorderFactory.createTitledBorder("Cropping Image"));
cpanel.setBackground(Color.white);
jContentPane.add(cpanel);
jContentPane.repaint();
jContentPane.revalidate();
metadata.setImage(null);
try {
new uk.co.mmscomputing.concurrent.Semaphore(0, true).tryAcquire(2000, null);
} catch (InterruptedException e) {
IJ.error(e.getMessage());
}
}
else if (type.equals(ScannerIOMetadata.NEGOTIATE)) {
ScannerDevice device = metadata.getDevice();
try {
device.setResolution(100);
} catch (ScannerIOException e) {
IJ.error(e.getMessage());
}
try{
device.setShowUserInterface(true);
device.setResolution(100); }catch(Exception e){
e.printStackTrace(); }
}
else if (type.equals(ScannerIOMetadata.STATECHANGE)) {
System.out.println("Scanner State "+metadata.getStateStr());
System.out.println("Scanner State "+metadata.getState());
if ((metadata.getLastState() == 3) && (metadata.getState() == 4)){}
} else if (type.equals(ScannerIOMetadata.EXCEPTION)) {
IJ.error(metadata.getException().toString());
}
}
我试图让它处理多个文档并保存在一个pdf文件中,这个库现在只处理一个文档。
我想知道如何将图像保存在缓冲区或其他地方,然后重新扫描,直到用户完成操作。
有没有一个功能可以将这些图像保存在pdf文件中 欢迎来到StackOverflow。一定要看一看。我们帮助您解决特定的编程问题,但您的问题超出了本网站的范围。您尝试了什么?您面临哪些具体问题?此外,请不要在此处删除大量代码,而是尝试将其归结为。对不起,我将尝试进行编辑以澄清问题,我的问题是有一个缓冲区,我可以在其中存储图像并要求再次扫描,直到用户完成扫描,然后将所有内容保存在同一个pdf文档中?我只是想知道该去哪里找