跪求关于PDF文档读取及打印的源代码或着控件!!!急急急!!!(100分)

  • 主题发起人 主题发起人 delphi3058
  • 开始时间 开始时间
D

delphi3058

Unregistered / Unconfirmed
GUEST, unregistred user!
小弟想编写软件:能够读取指定PDF文件的内容,并且能够打印此文件的指定页码范围(就像打印机设置选项中从X页到X页一样),最好能够预览。急求源码或控件!谢谢各位大侠了!!!
 
真巧了,这个控件昨天的一个富翁兄弟,给我了...
我帮它改了代码...我看了看他给的够全的了,什么打印的接口,文档的接口很全了...
http://www.delphibbs.com/delphibbs/dispq.asp?lid=3496988
 
[:D]得来全不费功夫
 
蓝哥:能给我一个插件吗?非常感谢!zhangjf0624@sohu.com
 
大哥,你不要这样耍我,那个帖子地下不现成的地址吗?

你也不看完,自己看。。。安装完了不就有插件了,但是看网上说免费的的。。应该似的。这个是别人告诉我的。。。
自己拿什么快车,什么带的,比我发个你快多了。
 
篮哥:不是小弟我笨,实在是看不懂!能说得具体点吗?小弟在这等着了,谢了!
 
篮哥:小弟还是看不懂!能说得具体点吗?谢了!!!
 
这就值的你跪了,那我看没有什么不跪的了
 
用Rave,还跪什么啊
 
我用的是文电通PDF浏览器插件[PDF Reader OCX
http://www.pdfwizard.com/chs/PRODUCT/downgold.asp 可以下载
这里不写着,地址吗?
免费下载,中文资料啊。。
都在这个帖子里
http://www.delphibbs.com/delphibbs/dispq.asp?lid=3496988
你倒把整个帖子看完啊。。最下面第二个回复不有吗,你说是不是你耍我。[:D][:D]
答案,我在QQ告诉楼主了,没有贴在网上。
我现在贴上,要不你又找不到,怪我了。
unit uMain;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, OleCtrls, PDFREADEROCXLib_TLB;
type
TFrmMain = class(TForm)
PDFReaderOCX1: TPDFReaderOCX;
OD: TOpenDialog;
btnOpen: TButton;
Memo1: TMemo;
procedure btnOpenClick(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;

var
FrmMain: TFrmMain;
implementation
{$R *.dfm}
procedure TFrmMain.btnOpenClick(Sender: TObject);
var
Fpdf:_DPDFReader;
d:IDispatch;//IPDFReaderInfo;
fpdfInfo:IPDFReaderInfo;
count:integer;
var
pTitle: WideString;
pSubject: WideString;
pAuthor: WideString;
pKeywords: WideString;
pCreator: WideString;
pProducer: WideString;
pCreatedDate: WideString;
pModifiedDate: WideString;
begin
if OD.Execute then
begin
PDFReaderOCX1.OpenFile(od.FileName,'');
PDFReaderOCX1.ControlInterface.GetPageInfoDispatch(d);
fpdfInfo:=d as IPDFReaderInfo;
//转化接口
fpdfInfo.GetPageCount(count);
//这里省略了成功的判断
Caption:=IntToStr(count);
fpdfInfo.GetDocumentInfo(pTitle,pSubject,pAuthor,pKeywords,pCreator,pProducer,pCreatedDate,pModifiedDate);
//Fpdf.GetPageInfoDispatch(fpdfInfo);
Memo1.Lines.Clear;
Memo1.Lines.Add('标题:'+pTitle);
Memo1.Lines.Add('主题:'+pSubject);
Memo1.Lines.Add('作者:'+pAuthor);
end;
end;

end.
 
篮哥:
谢谢你提供的代码,对我帮助很大!但还有个问题,思考了一下午也没结果。只能麻烦你了。:)问题是:我怎样才能实现打印PDF文件的某页到某页呢?FROM和TO是我事先设定的。谢谢了!!!
 
fpdfInfo接口已经拿到了,
什么打印问题应该不是问题。。你等些了,这些天有个朋友求我做网页,求真的让我无法拒绝。
 
procedure TFrmMain.btnPrintClick(Sender: TObject);
var
d:IDispatch;
p:IPDFReaderPrint;
begin
PDFReaderOCX1.GetPrintDispatch(d);//取得打印接口
p:=d as IPdFReaderPrint;
p.pageRange:=OCX_PrintPageRangeFromTo;
//p.evenOdd:=OCX_EvenOnly;
Memo1.Lines.Add(IntToStr(p.reverse));
Memo1.Lines.Add(IntToStr(p.Nup));
// p.reverse
p.Set_FirstPage(ed_first.Value);
p.Set_LastPage(ed_last.Value);
p.Print;
Memo1.Lines.Add(IntToStr(p.firstPage));
Memo1.Lines.Add(IntToStr(p.lastPage));
Memo1.Lines.Add(p.printerName);
Memo1.Lines.Add(IntToStr(p.copies));
Memo1.Lines.Add(IntToStr(p.content)) ;
Memo1.Lines.Add(IntToStr(p.tileLabels));
end;
我试了设置页数的东西,好像不灵。。。。我无能为力了。。你看空的。。。郁闷,我个人你一个一个的使用,要不直接使用PUT函数,都不行换个PDF的控件。。
 
我换了原是ADOBE的PDF。OCX
procedure TFrmMain.btnOpen2Click(Sender: TObject);
begin
if OD.Execute then
begin
Pdf1.LoadFile(OD.FileName);
pdf1.printPages(ed_first.Value,ed_last.Value);
end;
end;
试了可以。范围打印可以。
 
篮哥:
ADOBE的PDF.OCX我也安装了,但不会使:( ,能提供详细代码吗?(就像你给我的文电通PDF使用代码一样),多谢了!!!
 
后退
顶部