#include "wx/wx.h"
#endif
-#if wxUSE_HTML & wxUSE_PRINTING_ARCHITECTURE
+#if wxUSE_HTML && wxUSE_PRINTING_ARCHITECTURE && wxUSE_STREAMS
#include "wx/print.h"
#include "wx/printdlg.h"
/* prepare headers/footers renderer: */
m_RendererHdr -> SetDC(GetDC(), (double)ppiPrinterY / (double)ppiScreenY);
- m_RendererHdr -> SetSize(ppmm_h * (mm_w - m_MarginLeft - m_MarginTop),
- ppmm_v * (mm_h - m_MarginTop - m_MarginBottom));
+ m_RendererHdr -> SetSize((int) (ppmm_h * (mm_w - m_MarginLeft - m_MarginTop)),
+ (int) (ppmm_v * (mm_h - m_MarginTop - m_MarginBottom)));
if (m_Headers[0] != wxEmptyString) {
m_RendererHdr -> SetHtmlText(TranslateHeader(m_Headers[0], 1));
m_HeaderHeight = m_RendererHdr -> GetTotalHeight();
/* prepare main renderer: */
m_Renderer -> SetDC(GetDC(), (double)ppiPrinterY / (double)ppiScreenY);
- m_Renderer -> SetSize(ppmm_h * (mm_w - m_MarginLeft - m_MarginTop),
- ppmm_v * (mm_h - m_MarginTop - m_MarginBottom) -
+ m_Renderer -> SetSize((int) (ppmm_h * (mm_w - m_MarginLeft - m_MarginTop)),
+ (int) (ppmm_v * (mm_h - m_MarginTop - m_MarginBottom) -
m_FooterHeight - m_HeaderHeight -
((m_HeaderHeight == 0) ? 0 : m_MarginSpace * ppmm_v) -
((m_FooterHeight == 0) ? 0 : m_MarginSpace * ppmm_v)
- );
+ ));
m_Renderer -> SetHtmlText(m_Document, m_BasePath, m_BasePathIsDir);
CountPages();
return TRUE;
{
wxFileSystem fs;
wxFSFile *ff = fs.OpenFile(htmlfile);
+
+ if (ff == NULL)
+ {
+ wxLogError(htmlfile + _(": file does not exist!"));
+ return;
+ }
+
wxInputStream *st = ff -> GetStream();
char *t = new char[st -> GetSize() + 1];
st -> Read(t, st -> GetSize());
m_PageBreaks[0] = 0;
do {
- pos = m_Renderer -> Render(ppmm_h * m_MarginLeft,
- ppmm_v * (m_MarginTop + (m_HeaderHeight == 0 ? 0 : m_MarginSpace)) + m_HeaderHeight,
+ pos = m_Renderer -> Render((int)( ppmm_h * m_MarginLeft),
+ (int) (ppmm_v * (m_MarginTop + (m_HeaderHeight == 0 ? 0 : m_MarginSpace)) + m_HeaderHeight),
pos, TRUE);
m_PageBreaks[++m_NumPages] = pos;
} while (pos < m_Renderer -> GetTotalHeight());
dc -> SetBackgroundMode(wxTRANSPARENT);
- m_Renderer -> Render(ppmm_h * m_MarginLeft,
- ppmm_v * (m_MarginTop + (m_HeaderHeight == 0 ? 0 : m_MarginSpace)) + m_HeaderHeight,
+ m_Renderer -> Render((int) (ppmm_h * m_MarginLeft),
+ (int) (ppmm_v * (m_MarginTop + (m_HeaderHeight == 0 ? 0 : m_MarginSpace)) + m_HeaderHeight),
m_PageBreaks[page-1]);
m_RendererHdr -> SetDC(dc, (double)ppiPrinterY / (double)ppiScreenY);
if (m_Headers[page % 2] != wxEmptyString) {
m_RendererHdr -> SetHtmlText(TranslateHeader(m_Headers[page % 2], page));
- m_RendererHdr -> Render(ppmm_h * m_MarginLeft, ppmm_v * m_MarginTop);
+ m_RendererHdr -> Render((int) (ppmm_h * m_MarginLeft), (int) (ppmm_v * m_MarginTop));
}
if (m_Footers[page % 2] != wxEmptyString) {
m_RendererHdr -> SetHtmlText(TranslateHeader(m_Footers[page % 2], page));
- m_RendererHdr -> Render(ppmm_h * m_MarginLeft, pageHeight - ppmm_v * m_MarginBottom - m_FooterHeight);
+ m_RendererHdr -> Render((int) (ppmm_h * m_MarginLeft), (int) (pageHeight - ppmm_v * m_MarginBottom - m_FooterHeight));
}
}
-void wxHtmlEasyPrinting::PreviewFile(const wxString &htmlfile)
+bool wxHtmlEasyPrinting::PreviewFile(const wxString &htmlfile)
{
wxHtmlPrintout *p1 = CreatePrintout();
p1 -> SetHtmlFile(htmlfile);
wxHtmlPrintout *p2 = CreatePrintout();
p2 -> SetHtmlFile(htmlfile);
- DoPreview(p1, p2);
+ return DoPreview(p1, p2);
}
-void wxHtmlEasyPrinting::PreviewText(const wxString &htmltext, const wxString &basepath)
+bool wxHtmlEasyPrinting::PreviewText(const wxString &htmltext, const wxString &basepath)
{
wxHtmlPrintout *p1 = CreatePrintout();
p1 -> SetHtmlText(htmltext, basepath, TRUE);
wxHtmlPrintout *p2 = CreatePrintout();
p2 -> SetHtmlText(htmltext, basepath, TRUE);
- DoPreview(p1, p2);
+ return DoPreview(p1, p2);
}
-void wxHtmlEasyPrinting::PrintFile(const wxString &htmlfile)
+bool wxHtmlEasyPrinting::PrintFile(const wxString &htmlfile)
{
wxHtmlPrintout *p = CreatePrintout();
p -> SetHtmlFile(htmlfile);
- DoPrint(p);
+ return DoPrint(p);
}
-void wxHtmlEasyPrinting::PrintText(const wxString &htmltext, const wxString &basepath)
+bool wxHtmlEasyPrinting::PrintText(const wxString &htmltext, const wxString &basepath)
{
wxHtmlPrintout *p = CreatePrintout();
p -> SetHtmlText(htmltext, basepath, TRUE);
- DoPrint(p);
+ return DoPrint(p);
}
-void wxHtmlEasyPrinting::DoPreview(wxHtmlPrintout *printout1, wxHtmlPrintout *printout2)
+bool wxHtmlEasyPrinting::DoPreview(wxHtmlPrintout *printout1, wxHtmlPrintout *printout2)
{
// Pass two printout objects: for preview, and possible printing.
wxPrintDialogData printDialogData(*m_PrintData);
wxPrintPreview *preview = new wxPrintPreview(printout1, printout2, &printDialogData);
if (!preview -> Ok()) {
delete preview;
- wxMessageBox(_("There was a problem previewing.\nPerhaps your current printer is not set correctly?"), _("Previewing"), wxOK);
- }
-
- else {
- wxPreviewFrame *frame = new wxPreviewFrame(preview, m_Frame,
- m_Name + _(" Preview"),
- wxPoint(100, 100), wxSize(650, 500));
- frame -> Centre(wxBOTH);
- frame -> Initialize();
- frame -> Show(TRUE);
+ return FALSE;
}
+
+ wxPreviewFrame *frame = new wxPreviewFrame(preview, m_Frame,
+ m_Name + _(" Preview"),
+ wxPoint(100, 100), wxSize(650, 500));
+ frame -> Centre(wxBOTH);
+ frame -> Initialize();
+ frame -> Show(TRUE);
+ return TRUE;
}
-void wxHtmlEasyPrinting::DoPrint(wxHtmlPrintout *printout)
+bool wxHtmlEasyPrinting::DoPrint(wxHtmlPrintout *printout)
{
wxPrintDialogData printDialogData(*m_PrintData);
wxPrinter printer(&printDialogData);
if (!printer.Print(m_Frame, printout, TRUE))
- wxMessageBox(_("There was a problem printing.\nPerhaps your current printer is not set correctly?"), _("Printing"), wxOK);
- else
- (*m_PrintData) = printer.GetPrintDialogData().GetPrintData();
+ {
+ return FALSE;
+ }
+
+ (*m_PrintData) = printer.GetPrintDialogData().GetPrintData();
+ return TRUE;
}