การเปลี่ยนตัวเลือกสำหรับ Presentation.saveas pdf

ฉันใช้ PowerShell ต่อไปนี้เพื่อบันทึก PPT เป็น PDF

  $app = New-Object -ComObject powerpoint.application
  $presentation = $app.Presentations.open($FileName,-1,$null,0) #Open filename, boolReadOnly -1 = MSOTrue, boolOpenUntitled, boolWithWindow 0 = MSOFalse
  $presentation.SaveAs(($outFile).Value,32) #ppSaveAsPDF
  [Void]$Presentation.Close()
  [Void]$app.Quit() 
  [Void][System.Runtime.Interopservices.Marshal]::ReleaseComObject($app)

มันจะบันทึกไฟล์โดยไม่มีปัญหา แต่ไฟล์บางไฟล์ที่สร้างขึ้นจะมีขนาดใหญ่นิดหน่อย ฉันลองดูแล้วและใน PowerPoint มีตัวเลือกเมื่อบันทึกเป็น PDF เพื่อใช้ขนาดขั้นต่ำ: < img src="https://i.stack.imgur.com/tuPQ2.png" alt="ขนาดขั้นต่ำ"> นอกจากนี้ยังมีตัวเลือกในเครื่องมือในการเปลี่ยนการบีบอัดภาพ: บีบอัดรูปภาพ< /ก>

มีวิธีการตั้งค่าตัวแปรเหล่านี้สำหรับ PowerPoint เป็นค่าเริ่มต้นหรือไม่? ยังดีกว่า มีวิธีตั้งค่านี้ในคำสั่ง saveas ไหม

ฉันยังโชคดีกับ GhostScript โดยใช้บรรทัดคำสั่งต่อไปนี้:

"C:\Program Files\gs\gs9.21\bin\gswin64.exe" -sDEVICE=pdfwrite -dCompatibilityLevel=1.4 -dPDFSETTINGS=/ebook -dNOPAUSE -dQUIET -dBATCH -sOutputFile=Outfile.pdf Infile.pdf

แต่ฉันต้องการหลีกเลี่ยงการติดตั้ง ghostscript จริงๆ สามารถทำได้โดยใช้ DLL หรืออะไร?


person Xanderu    schedule 20.06.2018    source แหล่งที่มา
comment
หากเป็นแอปพลิเคชันโอเพ่นซอร์สของคุณเอง คุณสามารถใช้ Ghostscript DLL ได้ โดยจะต้องปฏิบัติตามใบอนุญาต Ghostscript ตัวอย่างที่ปฏิบัติการได้เพียงแค่ใช้ DLL ต่อไป   -  person KenS    schedule 21.06.2018
comment
ดูเหมือนว่า GhostScriptSharp อาจใช้กลอุบายได้ แต่ฉันกำลังดิ้นรนเพื่อติดตั้งและทำงาน...   -  person Xanderu    schedule 21.06.2018


คำตอบ (1)


คุณจะต้องใช้วิธี ExportAsFixedFormat ของ PowerPoint แทน SaveAs มันช่วยให้คุณควบคุมผลลัพธ์ได้มากขึ้น บทความ MSDN นี้อธิบาย parms ทั้งหมด:

https://msdn.microsoft.com/en-us/VBA/PowerPoint-VBA/articles/presentation-exportasfixedformat-method-powerpoint

สิ่งสำคัญที่คุณจะสนใจคือเจตนา

ตัวเลือกการบีบอัดที่คุณกล่าวถึงจะควบคุมจำนวน (และไม่ว่า) PPT จะบีบอัดรูปภาพในการบันทึกไฟล์เป็น PPTX แต่นั่นอาจส่งผลต่อขนาดของ PDF ที่สร้างจาก PPTX อย่างแน่นอน (หากทางอ้อม) ไม่มีวิธีใดที่จะควบคุมการตั้งค่าการบีบอัดได้นอกจากการปรับแต่งรีจิสทรี และเพื่อให้ได้ผล คุณจะต้องดำเนินการก่อนเริ่ม PPT

ลองตั้งค่าการบีบอัดตามรสนิยมของคุณ จากนั้นตรวจสอบที่นี่:

HKEY_CURRENT_USER\Software\Microsoft\Office\X.0\PowerPoint\Options

(โดยที่ X = 14 สำหรับ Office 2010, 15 สำหรับปี 2013, 16 สำหรับปี 2016)

ค้นหา DWORD ที่เรียกว่า AutomaticPictureCompressionDefault ฉันคิดว่านั่นคือสิ่งที่จะควบคุมระดับการบีบอัด

หากงานนำเสนอที่คุณใช้งานอยู่มีรูปภาพที่เพิ่มไว้แล้วและได้รับการบันทึกไว้อย่างน้อยหนึ่งครั้ง การเปลี่ยนแปลงระดับการบีบอัดอาจไม่มีผลอีกต่อไป

person Steve Rindsberg    schedule 22.06.2018