Con office 2007 c’è la possibilità di salvare un documento in pdf ma non
capisco come scegliere il formato di salvataggio, prima di perderci del
tempo provo a chiedere magari qualcuno ci è già passato, questo è il
codice di esempio:
require ‘win32ole’
word = WIN32OLE.new(‘Word.Application’)
document = word.Documents.Open(‘C:\prova.doc’)
document.SaveAs(‘C:\out.doc’, 0)
document.close
word.quit
ho provato cambiando l’estensione ma da questa non rileva il tipo
document.SaveAs(‘C:\out.pdf’, 0)
Qua’ c’è scritto di impostare il numero dopo il nome ma come trovare a
cosa corrisponde il pdf?
Grazie per la risposta Michele, a quanto pare non è un problema comune.
Comunque ho trovato il sistema ed estendo quanto si può trovare nel blog
che ho citato prima.
Dal blog:
document.SaveAs(‘c:\temp\MyDocument.doc’, 0) # Word document
(default)
document.SaveAs(‘c:\temp\MyDocument.dot’, 1) # Word template
document.SaveAs(‘c:\temp\MyDocument.txt’, 2) # Text
document.SaveAs(‘c:\temp\MyDocument.rtf’, 6) # Rich Text Format (RTF)
Da office 2003 in poi:
document.SaveAs(‘c:\temp\MyDocument.xml’, 11) # Xml format
Da office 2007 + plugin pdf in poi:
document.SaveAs(‘c:\temp\MyDocument.pdf’, 17) # Pdf format
Ciao
Marco M. wrote:
Con office 2007 c’è la possibilità di salvare un documento in pdf ma non
capisco come scegliere il formato di salvataggio, prima di perderci del
tempo provo a chiedere magari qualcuno ci è già passato, questo è il
codice di esempio:
require ‘win32ole’
word = WIN32OLE.new(‘Word.Application’)
document = word.Documents.Open(‘C:\prova.doc’)
document.SaveAs(‘C:\out.doc’, 0)
document.close
word.quit
ho provato cambiando l’estensione ma da questa non rileva il tipo
document.SaveAs(‘C:\out.pdf’, 0)
Io ho lavorato con xls.
Ho creato una classe per semplificarmi la vita (per la gestione dei
fogli e delle celle). Tornando al tuo problea. Spezzoni della classe
[…]
def initialize(nomefile, fogli)
#inizializza le variabili e prepara i fogli di lavoro
@nome_file = nomefile
@excel = WIN32OLE.new(“excel.application”)
@excel.visible = false
@excel.DisplayAlerts = false
@workbook = @excel.workbooks.add
[…]
def salva_file
@workbook.saveas @nome_file
end
[…]
Le differenze (rispetto al tuo codice) sono 3
- non uso il metodo saveas sull’oggetto excel ma su workbook
- il metodo saveas è minuscolo
- senza parentesi e senza il parametro zero
P.S. ricordati di liberare la memoria chiudendo word.
Ciao Michele.