OLE打印PDF(Perl)

跟ABAP沒有什麼關係。只是可以說明OLE提供了轉PDF的處理方式。

Printing PDF files using Win32::OLE and Acrobat Exchange

Posted by Domenico Discepola on July 15, 2004, 3:56 pm
Hello.  My goal is to print Adobe PDF files from a Perl script without any
user intervention.  I have been experimenting with various methods and am
now trying to use Win32::OLE to control Adobe Acrobat Exchange (v5.0.5).
Please refer to the code below.  I can create the acrobat object, open the
document and retrieve some information from the document.  My problems are:

1. Although I make acrobat visible using the show method, only the
application becomes visible, not the document.  How do I fix this?

2. What is the method to print the document once it has been opened?  The
"PrintPagesEx" method produces an error "Win32::OLE 0.1701) error
0x80020003: "Member not found" in METHOD/PROPERTYGET "" at jps2.pl line 30".
I then tried to loop through the hash referenced by the $doc variable but no
output from the hash was printed.

3. As an aside, if someone can provide me with the class name for Acrobat
Reader (not Acrobat exchange, as I have coded below) that would be great (or
inform me how to find it).  I am relatively inexperienced in the world of
OLE Automation so any hints would be helpful.


##############
#!perl
use strict;
use warnings;
use diagnostics;
use Win32::OLE;
use Win32::OLE::Const "Acrobat";
our $g_file_input = shift @ARGV;
die "Usage: $0 filenamen" unless $g_file_input;

sub process_main {


 #This does not work



}

sub main {
 print "PDF programn";
 &process_main();
 print "Ending nown";
}

&main();
exit 0;
###############

Posted by Matt Garrish on July 15, 2004, 8:43 pm


(or


4.1 Differences Among the Acrobat Viewers

Acrobat supports all of the OLE automation methods
listed in this chapter.

The Acrobat Reader does not support OLE automation.


For more info: http://partners.adobe.com/asn/acrobat/docs/iacovr.pdf

(And I don't have Exchange, so I can't help you with the rest.)

Matt

 

--------

 

Success!  Here is the code that opens up and prints a PDF using Win32::OLE
and Acrobat Exchange (v5.0.5 is the version I have).  Thanks for the link to
Acrobat Exchange's OLE Objects and Methods.  Too bad that Acrobat Reader
doesn't support OLE automation - I'm sure more people could have benefited
from this.

######################
#!perl
use strict;
use warnings;
use diagnostics;
use Win32::OLE;
use Win32::OLE::Const "Acrobat";
our $g_file_input = shift @ARGV;
die "Usage: $0 filenamen" unless $g_file_input;

sub process_main {

 }
 print "Num pages: $ppn";

}

sub main {
 print "PDF programn";
 &process_main();
 print "Ending nown";
}

&main();
exit 0;

發佈了19 篇原創文章 · 獲贊 0 · 訪問量 29萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章