Ik heb het nu bijna voor elkaar vanuit een actionListener wordt Print.java aangeroepen:
Java:
1
2
3
4
5
6
| class PrintMagKnopHandler implements ActionListener {
public void actionPerformed(ActionEvent e) {
String ordernr = tfOrderNr.getText();
print = new Print(ordernr);
}
} |
Nu start adobe op alleen laat verder alleen de melding achter dat ie het bestand niet kan openen. Dat zou goed kunnen want ik heb nergens aangegeven welk bestand hij moet opvragen ? Wie kan mij vertellen waar ik dat moet aanpassen in de onderstaande code ?
Java:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
| import java.io.*;
/********************************************************************************************
* printPDF
*
* Prints a PDF using Adobe Reader "/t" (print and terminate)
*
* @param File File to be printed, for example, C:\MYFILE.PDF
* @param Printer Printer, for example, \\MYSERVER\MYPRINTER
*
**********************************************************************************************/
public class Print{
String pFile;
String pPrinter;
public Print(String ordern){
final String PATH_ADOBE_READER = "C:\\Program Files\\Adobe\\Acrobat 6.0\\Reader\\AcroRd32.exe";
final String ADOBE_READER_PRINT_COMMAND = "/t";
final String SLASH = "/";
final String QUOTE = "\"";
final String SPACE = " ";
// Command to be executed
String lCommand = QUOTE + PATH_ADOBE_READER + QUOTE + SPACE +
ADOBE_READER_PRINT_COMMAND + SPACE +
QUOTE + pFile + QUOTE + SPACE +
QUOTE + pPrinter + QUOTE;
System.out.println("[printPDF] Command to be executed : " + lCommand);
Process lAdobeBackGroundProcess = null;
Process lAdobeProcess = null;
try
{
// Must create a background Adobe Reader process (don't ask why, just do it;-)
lAdobeBackGroundProcess = Runtime.getRuntime().exec(PATH_ADOBE_READER);
// Execute the Adobe Reader command "/t" (print and terminate)
lAdobeProcess = Runtime.getRuntime().exec(lCommand);
// Wait for Adobe Reader to complete
int exitVal = lAdobeProcess.waitFor();
if ( exitVal != 0 )
{
throw new Exception("[printPDF] Adobe Reader process exitVal : " + exitVal);
}
}
catch (Exception e)
{
System.err.println("[printPDF] Error printing PDF : " + pFile);
e.printStackTrace();
}
finally
{
if (lAdobeBackGroundProcess != null)
{
lAdobeBackGroundProcess.destroy();
lAdobeBackGroundProcess = null;
}
}
}
} |