<html xmlns:v="urn:schemas-microsoft-com:vml" xmlns:o="urn:schemas-microsoft-com:office:office" xmlns:w="urn:schemas-microsoft-com:office:word" xmlns:m="http://schemas.microsoft.com/office/2004/12/omml" xmlns="http://www.w3.org/TR/REC-html40"><head><meta http-equiv=Content-Type content="text/html; charset=iso-8859-1"><meta name=Generator content="Microsoft Word 15 (filtered medium)"><style><!--
/* Font Definitions */
@font-face
        {font-family:"Cambria Math";
        panose-1:2 4 5 3 5 4 6 3 2 4;}
@font-face
        {font-family:Calibri;
        panose-1:2 15 5 2 2 2 4 3 2 4;}
/* Style Definitions */
p.MsoNormal, li.MsoNormal, div.MsoNormal
        {margin:0in;
        margin-bottom:.0001pt;
        font-size:11.0pt;
        font-family:"Calibri",sans-serif;}
a:link, span.MsoHyperlink
        {mso-style-priority:99;
        color:#0563C1;
        text-decoration:underline;}
a:visited, span.MsoHyperlinkFollowed
        {mso-style-priority:99;
        color:#954F72;
        text-decoration:underline;}
span.EmailStyle17
        {mso-style-type:personal-compose;
        font-family:"Calibri",sans-serif;
        color:windowtext;}
.MsoChpDefault
        {mso-style-type:export-only;
        font-family:"Calibri",sans-serif;}
@page WordSection1
        {size:8.5in 11.0in;
        margin:1.0in 1.0in 1.0in 1.0in;}
div.WordSection1
        {page:WordSection1;}
--></style><!--[if gte mso 9]><xml>
<o:shapedefaults v:ext="edit" spidmax="1026" />
</xml><![endif]--><!--[if gte mso 9]><xml>
<o:shapelayout v:ext="edit">
<o:idmap v:ext="edit" data="1" />
</o:shapelayout></xml><![endif]--></head><body lang=EN-US link="#0563C1" vlink="#954F72"><div class=WordSection1><p class=MsoNormal>All,<o:p></o:p></p><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal>Issue #1<o:p></o:p></p><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal>I’m trying to create a Composer Layout using Python and I’m having issues with addComposerHtmlFrame. I currently have QGIS 2.16.2 installed so the API documentation I’m finding online doesn’t always match up with what I’m having to actually do. At this point when I add a Composer HTML Frame I see the frame in the layout, but the HTML isn’t rendered, even if I click on “Refresh HTML”.<o:p></o:p></p><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal>I’ve tried a few variations of my code, here’s the current variation:<o:p></o:p></p><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal>----------------------------------------------------------------------------------------------<o:p></o:p></p><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal>comp = self.iface.createNewComposer('Map_Layout')<o:p></o:p></p><p class=MsoNormal>c = comp.composition()<o:p></o:p></p><p class=MsoNormal>paper_w = 279.4<o:p></o:p></p><p class=MsoNormal>paper_h = 215.9 <o:p></o:p></p><p class=MsoNormal>c.setPaperSize(paper_w, paper_h)<o:p></o:p></p><p class=MsoNormal>c.setPlotStyle(QgsComposition.Print)<o:p></o:p></p><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal># Add Mag Decl / Datum Info<o:p></o:p></p><p class=MsoNormal>info1 = QgsComposerHtml(c, False)<o:p></o:p></p><p class=MsoNormal>info1.setContentMode(QgsComposerHtml.ManualHtml)<o:p></o:p></p><p class=MsoNormal>info1.setHtml('''Mag Decl: 8.16° W<br><o:p></o:p></p><p class=MsoNormal>Horz. Datum: WGS84''')<o:p></o:p></p><p class=MsoNormal>frame1 = QgsComposerFrame(c, info1, 27., 195., 42., 12.)<o:p></o:p></p><p class=MsoNormal>frame1.setId('Info 1')<o:p></o:p></p><p class=MsoNormal>c.addComposerHtmlFrame(info1, frame1)<o:p></o:p></p><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal># Add Map Name / Scale / Print Date / Contour Interval Info<o:p></o:p></p><p class=MsoNormal>info2 = QgsComposerHtml(c, False)<o:p></o:p></p><p class=MsoNormal>info2.setContentMode(QgsComposerHtml.ManualHtml)<o:p></o:p></p><p class=MsoNormal>info2.setHtml('''<table><o:p></o:p></p><p class=MsoNormal><tr><o:p></o:p></p><p class=MsoNormal><td width="68%"><o:p></o:p></p><p class=MsoNormal>Map Name: STUART (VA)<o:p></o:p></p><p class=MsoNormal></td><o:p></o:p></p><p class=MsoNormal><td><o:p></o:p></p><p class=MsoNormal>Scale: 1 inch = 2,000 ft<o:p></o:p></p><p class=MsoNormal></td><o:p></o:p></p><p class=MsoNormal></tr><o:p></o:p></p><p class=MsoNormal><tr><o:p></o:p></p><p class=MsoNormal><td><o:p></o:p></p><p class=MsoNormal>Print Date: Thu Oct 17 07:34:36 2013<o:p></o:p></p><p class=MsoNormal></td><o:p></o:p></p><p class=MsoNormal><td><o:p></o:p></p><p class=MsoNormal>Contour Interval: 20 Feet<o:p></o:p></p><p class=MsoNormal></td><o:p></o:p></p><p class=MsoNormal></tr><o:p></o:p></p><p class=MsoNormal></table>''')<o:p></o:p></p><p class=MsoNormal>frame2 = QgsComposerFrame(c, info2, 73., 193., 125., 15.)<o:p></o:p></p><p class=MsoNormal>frame2.setFrameEnabled(True)<o:p></o:p></p><p class=MsoNormal>frame2.setId('Info 2')<o:p></o:p></p><p class=MsoNormal>c.addComposerHtmlFrame(info2, frame2)<o:p></o:p></p><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal>----------------------------------------------------------------------------------------------<o:p></o:p></p><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal>The documentation says that the 2<sup>nd</sup> parameter to QgsComposerFrame needs to be a QgsComposerMultiFrame. Since QgsComposerMultiFrame is an abstract class the only two options I know to try are either setting this parameter to None (variation 1) or setting it to the QgsComposerHtml item itself (variation 2), where the latter is what I’m doing above.<o:p></o:p></p><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal>Are there any ideas why the contents of the QgsComposerHtml never appear? Also, if I save my project, close QGIS, and then re-open QGIS and the project, the QgsComposerHtml elements are missing.<o:p></o:p></p><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal>Issue #2<o:p></o:p></p><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal>Is there any way to create a new Composer without opening the Composer window? I tried hiding the window after creating the new Composer, but that just gave me a Composer window that was in a somewhat odd state.<o:p></o:p></p><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal>Issue #3<o:p></o:p></p><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal>What’s the recommended way to pull in magnetic declination? Is this possible offline?<o:p></o:p></p><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal>Thanks in advance!<o:p></o:p></p><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal>Josh Q<o:p></o:p></p><p class=MsoNormal><o:p> </o:p></p></div></body></html>