Hi all,
I am trying to create word document in ruby using WIN32OLE.
as..
require ''win32ole''
word = WIN32OLE.new("Word.Application")
word.visible = true
word.documents.add
selection = word.selection
word.Selection.TypeText "This is some text."
...
..
.
Can we set header and footer to document? I want to generate a
document such that its header contains an image on right side and a
note on left side. please help me out.
Thanks.
--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups
"Ruby on Rails: Talk" group.
To post to this group, send email to
rubyonrails-talk-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org
To unsubscribe from this group, send email to
rubyonrails-talk-unsubscribe-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org
For more options, visit this group at
http://groups.google.com/group/rubyonrails-talk?hl=en
-~----------~----~----~----~------~----~------~--~---
This is not a Rails specific Question - wrong Board ;). It would also be better to ask this question on a group that knows the OLE-Api, as it is not documented in ruby. Anyways: As far as i was able to google it, header and footer are specific views in a document that you can address with switch_view. In Perl, the method is: # insert something into the header switch_view($document, wdSeekCurrentPageHeader); my $st_header = create_style($document, "Verdana", 8, 0, 0); set_style($document, $st_header); text ($document, "this is the document''s header, it will be repeated on all pages"); # insert something into the footer switch_view($document, wdSeekCurrentPageFooter); my $st_footer = create_style($document, "Verdana", 8, 0, 0); set_style($document, $st_footer); text ($document, "this is the document''s footer, it will be repeated on all pages"); I''m sorry that i can''t find example code in ruby, but you should be able to translate it. I do not own a windows box, so i test it for you. I hope it helps. -- Posted via http://www.ruby-forum.com/. --~--~---------~--~----~------------~-------~--~----~ You received this message because you are subscribed to the Google Groups "Ruby on Rails: Talk" group. To post to this group, send email to rubyonrails-talk-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org To unsubscribe from this group, send email to rubyonrails-talk-unsubscribe-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org For more options, visit this group at http://groups.google.com/group/rubyonrails-talk?hl=en -~----------~----~----~----~------~----~------~--~---
Florian
Thank you for your response. In VB it can be done as
Dim pDoc as Word.Document
Set pDoc = WordApp.Documents.Open(FileName)
With pDoc
.Headers(wdHeaderFooterPrimary).Range.Text = "Header that I want
to set"
with .Footers(wdHeaderFooterPrimary).Range
.Text = "Footer Left text" & vbTab & "Footer
center" & vbTab
.Fields.Add Range:=ActiveDocument.Range(.End, .End),
Type:=wdFieldPage
....
end with
end with
There might be some APIs in ruby also to set header and footer.
Regards,
Florian Gilcher wrote:> This is not a Rails specific Question - wrong Board ;). It would also be
> better to ask this question on a group that knows the OLE-Api, as it is
> not documented in ruby.
>
> Anyways:
>
> As far as i was able to Google it, header and footer are specific views
> in a document that you can address with switch_view. In Perl, the method
> is:
>
> # insert something into the header
> switch_view($document, wdSeekCurrentPageHeader);
> my $st_header = create_style($document, "Verdana", 8, 0, 0);
> set_style($document, $st_header);
> text ($document, "this is the document''s header, it will
be repeated
> on all pages");
>
> # insert something into the footer
> switch_view($document, wdSeekCurrentPageFooter);
> my $st_footer = create_style($document, "Verdana", 8, 0, 0);
> set_style($document, $st_footer);
> text ($document, "this is the document''s footer, it will
be repeated
> on all pages");
>
> I''m sorry that i can''t find example code in ruby, but you
should be able
> to translate it. I do not own a windows box, so i test it for you. I
> hope it helps.
--
Posted via http://www.ruby-forum.com/.
--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups
"Ruby on Rails: Talk" group.
To post to this group, send email to
rubyonrails-talk-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org
To unsubscribe from this group, send email to
rubyonrails-talk-unsubscribe-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org
For more options, visit this group at
http://groups.google.com/group/rubyonrails-talk?hl=en
-~----------~----~----~----~------~----~------~--~---
Try the following code:
---
require ''win32ole''
word = WIN32OLE.new("Word.Application")
word.visible = true
word.documents.add
word.Selection.TypeText "This is the main body"
word.ActiveWindow.ActivePane.View.SeekView = 9 #
wdSeekCurrentPageHeader
word.Selection.TypeText "This is the header"
---
To figure out the value of wdSeekCurrentPageHeader, you need to google
for it, print it out in VB or use some other method.
I don''t believe the statement "selection = word.selection" in
your
original code is doing anything, I was able to run with it.
For some hints on converting VB to ruby, check out the blog at
http://rubyonwindows.blogspot.com/
he''s got some great hints that have helped me significantly.
-- Dan
--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups
"Ruby on Rails: Talk" group.
To post to this group, send email to
rubyonrails-talk-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org
To unsubscribe from this group, send email to
rubyonrails-talk-unsubscribe-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org
For more options, visit this group at
http://groups.google.com/group/rubyonrails-talk?hl=en
-~----------~----~----~----~------~----~------~--~---
Playing with this a little more I came up with this:
---
require ''win32ole''
word = WIN32OLE.new("Word.Application")
current_W = $VERBOSE
$VERBOSE = nil
WIN32OLE.const_load(word)
$VERBOSE = current_W
word.visible = true
word.documents.add
word.Selection.TypeText "This is the main body"
word.ActiveWindow.ActivePane.View.SeekView WIN32OLE::WdSeekCurrentPageHeader
word.Selection.TypeText "This is the header"
---
the line "WIN32OLE.const_load(word)" loads the VB constants for Word,
so you can use the constant "WIN32OLE::WdSeekCurrentPageHeader" later
in the code.
When you''re translating constants from VB, add "WIN32OLE::"
to the
front, and capitalize the first char of the variable name.
The lines with "$VERBOSE" mask the warnings that come from the
const_load operation, take those lines out to see what I mean.
-- Dan
--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups
"Ruby on Rails: Talk" group.
To post to this group, send email to
rubyonrails-talk-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org
To unsubscribe from this group, send email to
rubyonrails-talk-unsubscribe-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org
For more options, visit this group at
http://groups.google.com/group/rubyonrails-talk?hl=en
-~----------~----~----~----~------~----~------~--~---
Yes it works, :~} Thank you Dan. That is great. Regards, -Rahul> Playing with this a little more I came up with this: > > --- > require ''win32ole'' > word = WIN32OLE.new("Word.Application") > current_W = $VERBOSE > $VERBOSE = nil > WIN32OLE.const_load(word) > $VERBOSE = current_W > word.visible = true > word.documents.add > word.Selection.TypeText "This is the main body" > word.ActiveWindow.ActivePane.View.SeekView > WIN32OLE::WdSeekCurrentPageHeader > word.Selection.TypeText "This is the header" > --- > > the line "WIN32OLE.const_load(word)" loads the VB constants for Word, > so you can use the constant "WIN32OLE::WdSeekCurrentPageHeader" later > in the code. > When you''re translating constants from VB, add "WIN32OLE::" to the > front, and capitalize the first char of the variable name. > The lines with "$VERBOSE" mask the warnings that come from the > const_load operation, take those lines out to see what I mean. > > -- Dan-- Posted via http://www.ruby-forum.com/. --~--~---------~--~----~------------~-------~--~----~ You received this message because you are subscribed to the Google Groups "Ruby on Rails: Talk" group. To post to this group, send email to rubyonrails-talk-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org To unsubscribe from this group, send email to rubyonrails-talk-unsubscribe-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org For more options, visit this group at http://groups.google.com/group/rubyonrails-talk?hl=en -~----------~----~----~----~------~----~------~--~---