como cambiar tipo de papel (carta a legal) de documento de word manipulado desde vfp

221 views
Skip to first unread message

Daniel Marte

unread,
Oct 23, 2014, 11:13:49 PM10/23/14
to publice...@googlegroups.com
Hola a todos, estoy creando un contrato de word desde vfp y quiero cambiar por codigos el tamaño del documento a legal, ya que el tamaño predeterminado es tipo carta, utilizo este codigo.
oWord = CREATEObject("Word.Application") 
oWord.Visible   = .T. 
oWord.documents.add 

oword.Selection.Text = ALLTRIM(plantilla.texto)
oWord.Selection.Font.Size       = 14
oWord.Selection.Font.Name     = "times new roman"
oWord.selection.movedown 

oWord.activedocument.content.InsertParagraphAfter 
oWord.selection.movedown 
oWord.WindowState = 1 
RELEASE oWord
thisform.Release


Fidel Charny

unread,
Oct 24, 2014, 7:20:54 AM10/24/14
to publice...@googlegroups.com
#DEFINE wdPaper10x14 0 && 10 inches wide, 14 inches long.
#DEFINE wdPaper11x17 1 && Legal 11 inches wide, 17 inches long.
#DEFINE wdPaperA3 6 && A3 dimensions.
#DEFINE wdPaperA4 7 && A4 dimensions.
#DEFINE wdPaperA4Small 8 && Small A4 dimensions.
#DEFINE wdPaperA5 9 && A5 dimensions.
#DEFINE wdPaperB4 10 && B4 dimensions.
#DEFINE wdPaperB5 11 && B5 dimensions.
#DEFINE wdPaperCSheet 12 && C sheet dimensions.
#DEFINE wdPaperCustom 41 && Custom paper size.
#DEFINE wdPaperDSheet 13 && D sheet dimensions.
#DEFINE wdPaperEnvelope10 25 && Legal envelope, size 10.
#DEFINE wdPaperEnvelope11 26 && Envelope, size 11.
#DEFINE wdPaperEnvelope12 27 && Envelope, size 12.
#DEFINE wdPaperEnvelope14 28 && Envelope, size 14.
#DEFINE wdPaperEnvelope9 24 && Envelope, size 9.
#DEFINE wdPaperEnvelopeB4 29 && B4 envelope.
#DEFINE wdPaperEnvelopeB5 30 && B5 envelope.
#DEFINE wdPaperEnvelopeB6 31 && B6 envelope.
#DEFINE wdPaperEnvelopeC3 32 && C3 envelope.
#DEFINE wdPaperEnvelopeC4 33 && C4 envelope.
#DEFINE wdPaperEnvelopeC5 34 && C5 envelope.
#DEFINE wdPaperEnvelopeC6 35 && C6 envelope.
#DEFINE wdPaperEnvelopeC65 36 && C65 envelope.
#DEFINE wdPaperEnvelopeDL 37 && DL envelope.
#DEFINE wdPaperEnvelopeItaly 38 && Italian envelope.
#DEFINE wdPaperEnvelopeMonarch 39 && Monarch envelope.
#DEFINE wdPaperEnvelopePersonal 40 && Personal envelope.
#DEFINE wdPaperESheet 14 && E sheet dimensions.
#DEFINE wdPaperExecutive 5 && Executive dimensions.
#DEFINE wdPaperFanfoldLegalGerman 15 && German legal fanfold dimensions.
#DEFINE wdPaperFanfoldStdGerman 16 && German standard fanfold dimensions.
#DEFINE wdPaperFanfoldUS 17 && United States fanfold dimensions.
#DEFINE wdPaperFolio 18 && Folio dimensions.
#DEFINE wdPaperLedger 19 && Ledger dimensions.
#DEFINE wdPaperLegal 4 && Legal dimensions.
#DEFINE wdPaperLetter 2 && Letter dimensions.
#DEFINE wdPaperLetterSmall 3 && Small letter dimensions.
#DEFINE wdPaperNote 20 && Note dimensions.
#DEFINE wdPaperQuarto 21 && Quarto dimensions.
#DEFINE wdPaperStatement 22 && Statement dimensions.
#DEFINE wdPaperTabloid 23 && Tabloid dimensions.


Establece Legal
with oWord.PageSetup
.PaperSize=wdPaperA4   && establece papel A4

endwith

edgar suarez kummers

unread,
Oct 24, 2014, 8:01:42 AM10/24/14
to publice...@googlegroups.com
Buenas Fidel:
 
Cuanta riqueza intelectual le ofreces al grupo. Además que colaboras con discreción y con una serena humildad. Felicitaciones y sobre todo agradecimientos.
 

Daniel Marte

unread,
Oct 24, 2014, 3:53:06 PM10/24/14
to publice...@googlegroups.com
Hola Fidel, probe tu ejemplo de varias formas y me da un error
ole error code 0x80020006: unknown com status code

Fidel Charny

unread,
Oct 24, 2014, 6:17:31 PM10/24/14
to publice...@googlegroups.com
Tienes razón Daniel, porque en el apuro pegué un salto. 
Ahora voy a omitir por brevedad todos los #define. El cambio es:
loDoc = loWord.ActiveDocument
With lodoc.PageSetup
       .PaperSize= 7

       && etc
endwith
LOCAL loWord as Object , loDoc as Object,lError
TRY 
LOCAL LOEX AS Exception
lOWord = CREATEOBJECT("Word.Application")
CATCH TO loEx
lError = .t.
=MESSAGEBOX("No se puede procesar el archivo porque no tiene la aplicación"+CHR(13)+;
     "Microsoft Word instalada en su computador.",0,tH_mensaje)
FINALLY
ENDTRY
IF lError
RETURN
ENDIF

* ? " Agregando un Documento..."
TRY
loWord.Documents.ADD()
loDoc = loWord.ActiveDocument

* ? " Configurando Hoja..."
npar=0
cmLm=3
cmRM=3
nFactor=28.35
nleftMargin=Int(nFActor*cmLM)
nTopMargin=int(nFActor*2.6)

with loDoc.PageSetup
.PaperSize=wdPaperA4       && A4
.topMargin=nTopMargin
.BottomMargin=int(nFactor*2.5)
.LeftMargin=nLeftMargin
.RightMargin=Int(nFactor*cmRm)
.FooterDistance = int(nFactor*1.5)
.HeaderDistance = nFActor
endwith


CATCH TO loEx
* ShowError(loEx)
FINALLY
* Ver Garbage
ENDTRY

Daniel Marte

unread,
Oct 24, 2014, 8:29:08 PM10/24/14
to publice...@googlegroups.com

Muchas Gracias por tu respuesta Fidel, funciona de maravilla, Gracias de nuevo
por tu acertada respuesta.

El jueves, 23 de octubre de 2014 19:13:49 UTC-8, Daniel Marte escribió:
Reply all
Reply to author
Forward
0 new messages