Arrebol - Chia sẻ kiến thức kết nối thành công

https://arrebol.edu.vn


Lưu file DOC thành PDF bằng VBA và PDFCreator

Lưu file DOC thành PDF bằng VBA và PDFCreator
Trước khi bắt đầu, bạn cần cài đặt và tham khảo phần mềm sau:
Cài đặt PDFCreator (miễn phí) trong PDFCreator (https://www.pdfforge.org/)
Cài đặt xong check "PDFCreator_COM" trong phần cài đặt.
Sau khi mở Word bạn hãy thay đổi máy in thành PDFCreator. (Nếu bạn không thay đổi nó sẽ không hoạt động và nó sẽ được xuất ra từ máy in bình thường.)
Phương thức xuất PDF
Sub PDF_Output()
    Const JobTimeout As Integer = 15
    Const PDF_DPI As Integer = 300
    Const PDF_CompLevel As String = "JpegMedium"
    Const DistPath As String = "C:\Tmp\TestPDF.pdf"
    Dim PDFCreatorQueue As Queue
    Dim PrintJob As PrintJob

    Set PDFCreatorQueue = CreateObject("PDFCreator.JobQueue")

    'Chọn PDFCreator tại đây
    Application.Dialogs(xlDialogPrinterSetup).Show

    PDFCreatorQueue.Initialize

    ActiveWindow.SelectedSheets.PrintOut Copies:=1, Collate:=True

    If Not PDFCreatorQueue.WaitForJob(JobTimeout) Then
      MsgBox ("Không thể xuất PDF vì không tìm thấy lệnh in.")
    Else
      Set PrintJob = PDFCreatorQueue.NextJob
      PrintJob.SetProfileByGuid ("DefaultGuid")

      'Compression
      'Thay đổi tỷ lệ nén của hình ảnh tại đây…JpegMaximum (độ nén cao) → JpegMinimum (độ nén thấp)

      Call PrintJob.SetProfileSetting("PdfSettings.CompressColorAndGray.Enabled", "True")

      'Lấy mẫu lại ảnh rõ ràng
      Call PrintJob.SetProfileSetting("PdfSettings.CompressColorAndGray.Resampling", "True")

      'Cài đặt lấy mẫu lại ảnh (DPI 300)
      Call PrintJob.SetProfileSetting("PdfSettings.CompressColorAndGray.Dpi", PDF_DPI)

      'Nén ảnh được đặt thành nén trung bình
      Call PrintJob.SetProfileSetting("PdfSettings.CompressColorAndGray.Compression", PDF_CompLevel)

      PrintJob.ConvertTo (DistPath)

      If (Not PrintJob.IsFinished Or Not PrintJob.IsSuccessful) Then
          MsgBox ("Không thể xuất các tệp sau dưới dạng PDF. :" & DistPath)
      End If
    End If

    MsgBox ("Hoàn thành xuất file PDF.")

    PDFCreatorQueue.ReleaseCom

End Sub
Có rất ít trang web mà bạn có thể tham khảo, nhưng tôi nghĩ bạn có thể làm được nếu chỉ cần xem tài liệu tham khảo chính thức.
Ngoài ra các bạn có thể tham khảo thêm theo link bên dưới:
http://docs.pdfforge.org/pdfcreator/latest/en/pdfcreator/com-interface/
http://docs.pdfforge.org/pdfcreator/latest/en/pdfcreator/com-interface/reference/settings/

Tác giả: Admin Arrebol

Bạn đã không sử dụng Site, Bấm vào đây để duy trì trạng thái đăng nhập. Thời gian chờ: 60 giây