embed CSS file in word page

This commit is contained in:
Helmut Merz 2012-02-01 21:27:09 +01:00
parent 46e8939ee1
commit 56e39fe6fa
3 changed files with 123 additions and 2 deletions

View file

@ -20,6 +20,7 @@
View definitions for generation of documents.
"""
import os
from zope.app.pagetemplate import ViewPageTemplateFile
from zope.cachedescriptors.property import Lazy
from zope.publisher.browser import BrowserPage
@ -40,6 +41,7 @@ class Base(BrowserPage):
class WordDocument(Base):
index = word_template
showLinks = False
def setHeader(self, data, filename='document'):
fn = '%s.doc' % filename
@ -57,3 +59,12 @@ class WordDocument(Base):
<w:DoNotOptimizeForBrowser />
</w:WordDocument>
</xml>"""
@Lazy
def css(self):
fn = os.path.join(os.path.dirname(__file__), 'word.css')
f = open(fn, 'r')
css = f.read()
f.close()
return css

110
docgen/word.css Normal file
View file

@ -0,0 +1,110 @@
body {
font-family: Arial,Helvetica,"sans serif";
font-size: 12pt;
}
body div {
font-size: 12pt;
}
h1, h2, h3, h4, h5, h6, {
color: black;
font-weight: bold;
border: none;
}
h1, h2, h3, h4 {
margin-top: 1em;
}
h4 {
font-style: italic;
}
h5 {
font-size: 120%;
margin-top: 0.5em;
margin-bottom: 0.5em;
}
h6 {
font-size: 100%;
margin-top: 0.5em;
margin-bottom: 0;
}
p {
margin-top: 0.5em;
margin-bottom: 0.5em;
}
li, div {
margin-top: 0.2em;
margin-bottom: 0.2em;
}
.center {
text-align: center;
}
.number {
text-align: right;
}
table {
border-collapse: collapse;
}
td, th {
border: solid 1px #000000;
vertical-align: top;
}
th {
font-weight: normal;
text-align: center;
padding-left: 10px;
padding-right: 10px;
background-color: #eeeeee;
}
.headline1 {
font-weight: bold;
font-size: 140%;
}
.headline2 {
font-weight: bold;
}
span.MsoFootnoteReference {
mso-style-noshow:yes;
vertical-align: super;
}
p.MsoFootnoteText {
font-size: 80%;
margin-left: 3em;
}
@page Section1 {
size: 595.3pt 841.9pt;
margin: 2cm 2cm 2cm 2cm;
mso-header: h1;
mso-footer: f1;
}
div.Section1 {page: Section1}
@page Section2 {
size: 841.9pt 595.3pt;
margin: 2cm 2cm 2cm 2cm;
mso-page-orientation: landscape;
mso-header: h1;
mso-footer: f1;
}
div.Section2 {page: Section2}
@page Section3 {
}
div.Section3 {page: Section3}

View file

@ -9,10 +9,10 @@
<title xxtal:content="view/title">Document</title>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
<xml xxtal:replace="structure view/mswordXml" />
<xml tal:replace="structure view/mswordXml" />
<style type="text/css"
xxtal:content="view/css">
tal:content="view/css">
</style>
</head>