Xin Cách in file PDF trong vba bằng forxit thay cho cách In bằng Adobe

Liên hệ QC

maya09

Thành viên mới
Tham gia
20/4/12
Bài viết
19
Được thích
1
Mình muốn cách in file pdf bằng vba và tự động scale cho vừa trang giấy như khi mở các chương trình đọc file pdf vì mình có file A3 mà cần in A4. với việc gọi bằng 1 trong 2 chương trình Forxit và SumatraPDF (hoặc chương trình đọc file pdf nhẹ nhàng khác) . Vì mình đã làm được bằng Adobe acrobat nhưng thằng này thì siêu nặng ( 3-4s cho 1 lệnh)
. Tiện đây cũng chia sẻ với mọi người code in bằng Acrobat và cũng là cái mình muốn sửa cho chương trình khác mà ko biết làm :D :

Đầu tiên cần cấp thư viện acrobat cho vba bằng cách vào Tool-> References : "C:\Program Files (x86)\Adobe\Acrobat 11.0\Acrobat" file "acrobat.tlb"

PHP:
Public Sub AcrobatPrint(FileName As String, PrintMode As Byte)     Dim AcroExchApp As Acrobat.CAcroApp     Dim AcroExchAVDoc As Acrobat.CAcroAVDoc     Dim AcroExchPDDoc As Acrobat.CAcroPDDoc     Dim number As Integer     Dim a As Byte          If Dir(FileName) = Empty Then        MsgBox (" Error: link not found !")     End If     PrintMode = IIf(PrintMode < 2, 1, PrintMode)     Set AcroExchApp = CreateObject("AcroExch.App")     Set AcroExchAVDoc = CreateObject("AcroExch.AVDoc")     AcroExchAVDoc.Open FileName, ""     Set AcroExchPDDoc = AcroExchAVDoc.GetPDDoc     number = AcroExchPDDoc.GetNumPages - 1          Range("h1") = PrintMode          For a = 1 To PrintMode           Call AcroExchAVDoc.PrintPages(0, number, 2, 1, 1)          Next a     AcroExchApp.Exit     AcroExchAVDoc.Close (True)     AcroExchPDDoc.Close     End Sub

Sử dụng : AcrobatPrint "đường đẫn đến file PDF" "số bản in cần"

Chương trình chạy tốt nhưng rất nặng .Mong mọi người giúp với các chương trình nhẹ hơn với , thanks !
 
Lần chỉnh sửa cuối:
@maya09:
Chỉ thiết lập Foxit Reader và Printer Properties có đồng ý không?
Hay nhất thiết phải xài vba?
 
Upvote 0
Là sao bạn , mình muốn dùng lệnh in sao cho nhanh thay thế cho cái pdf ở trên vì dùng pfd thì nặng quá(và trong file exl mình đã có sẵn đường dẫn tới file pdf cần in). Cho nên muốn dùng chức năng auto scale của các chương trình đọc pdf chứ mình ko muốn dùng scale của Printer properties . (hy vọng hiểu đúng ý bạn nói %#^#$).
 
Upvote 0
Là sao bạn , mình muốn dùng lệnh in sao cho nhanh thay thế cho cái pdf ở trên vì dùng pdf thì nặng quá (và trong file exl mình đã có sẵn đường dẫn tới file pdf cần in). Cho nên muốn dùng chức năng auto scale của các chương trình đọc pdf chứ mình ko muốn dùng scale của Printer properties . (hy vọng hiểu đúng ý bạn nói %#^#$).
Muốn in file pdf thì vẫn thông qua phần mềm đọc được file pdf duyệt file rồi mới in ra.
*Dùng chức năng scale của phần mềm đọc pdf:
1/ Chọn máy in để in:
- Set as default printer.
- Printer Properties/ page setup: Page size = A3 và Output size = A4.
Chọn khay giấy (tray 1 or 2...)
2/ Thiết lập Foxit Reader:
- Cài đặt mở file pdf mặc định bằng Foxit Reader: Click chuột phải vào file pdf bất kỳ/ Properties. Cửa sổ Properties:
Mục General/ Opens with/ Change... / Chọn Foxit Reader/ OK.
- Mở 01 file pdf bất kỳ/ Nhấn ctrl + P (mở cửa sổ Print của Foxit Reader).
Mục Name: tên máy in đã thiết lập ở bước 1.
Mục Print Handling: Check dòng "Fit to Printer Margins"
Click OK để in (mục đích để phần mềm Foxit Reader ghi nhớ các thiết lập ở trên).
3/ Tiến hành in danh sách file:
- Mở tới thư mục chứa file pdf cần in (A3 >> A4).
- Chọn các file cần in (chọn tất cả: ctrl+A). Click chuột phải vào file pdf/ Print.
Kết thúc.
 
Upvote 0
Thanks bạn nhưng mình đang làm báo cáo cần in bản vẽ xen kẽ với báo cáo bằng exl . Nên muốn cho tự động in với lệnh bằng vba chung với file exl vì mình có đường dẫn cho từng file cần in. Còn mình có gần 1000 file pdf chung 1 chỗ và mỗi lần chỉ in vài chục file thôi ( mà file pdf cái thì a3 cái thì a4 mới khổ chứ!$@!!) .
 
Upvote 0
Lang thang tìm cách in file ảnh thì thấy cái này.
Bạn xem file đính kèm nhé.
Note: Nhớ thiết lập bước 1 ở bài #4
 

File đính kèm

  • Print Pdf.xls
    67 KB · Đọc: 248
Upvote 0
THANKS !
Chương trình làm việc tốt, mỗi tội xem ko hiểu gì thôi !$@!!
. Mình thử thấy không cần sửa gì cả, code sẽ dùng mặc định in pdf với chương trình đã chọn .
 
Lần chỉnh sửa cuối:
Upvote 0
Web KT
Back
Top Bottom