NS_IMETHODIMP nsDeviceContextSpecOS2::BeginDocument(PRUnichar* aTitle, PRUnichar* aPrintToFileName, PRInt32 aStartPage, PRInt32 aEndPage) { #ifdef debug_thebes_print printf("nsDeviceContextSpecOS2[%#x]::BeginPrinting(%s, %s)\n", (unsigned)this, NS_LossyConvertUTF16toASCII(nsString(aTitle)).get(), NS_LossyConvertUTF16toASCII(nsString(aPrintToFileName)).get()); #endif // don't try to send device escapes for non-native output (like PDF) PRInt16 outputFormat; mPrintSettings->GetOutputFormat(&outputFormat); if (outputFormat != nsIPrintSettings::kOutputFormatNative) { return NS_OK; } char *title = GetACPString(aTitle); const PSZ pszGenericDocName = "Mozilla Document"; PSZ pszDocName = title ? title : pszGenericDocName; LONG lResult = DevEscape(mPrintDC, DEVESC_STARTDOC, strlen(pszDocName) + 1, pszDocName, (PLONG)NULL, (PBYTE)NULL); mPrintingStarted = PR_TRUE; if (title) { nsMemory::Free(title); } return lResult == DEV_OK ? NS_OK : NS_ERROR_GFX_PRINTER_STARTDOC; }
nsresult gfxWindowsSurface::BeginPrinting(const nsAString& aTitle, const nsAString& aPrintToFileName) { #define DOC_TITLE_LENGTH 30 DOCINFO docinfo; nsString titleStr; titleStr = aTitle; if (titleStr.Length() > DOC_TITLE_LENGTH) { titleStr.SetLength(DOC_TITLE_LENGTH-3); titleStr.AppendLiteral("..."); } char *title = GetACPString(titleStr); char *docName = nsnull; if (!aPrintToFileName.IsEmpty()) { docName = ToNewCString(aPrintToFileName); } docinfo.cbSize = sizeof(docinfo); docinfo.lpszDocName = title ? title : "Mozilla Document"; docinfo.lpszOutput = docName; docinfo.lpszDatatype = NULL; docinfo.fwType = 0; int result = ::StartDoc(mDC, &docinfo); delete [] title; if (docName != nsnull) nsMemory::Free(docName); if (result <= 0) return NS_ERROR_FAILURE; return NS_OK; }
// Printing ------------------------------------------------------------------ nsresult nsDeviceContextOS2::PrepareDocument(PRUnichar * aTitle, PRUnichar* aPrintToFileName) { nsresult rv = NS_OK; if (NULL != mPrintDC){ nsString titleStr; titleStr = aTitle; char *title = GetACPString(titleStr); PSZ pszDocName; const PSZ pszGenericDocName = "MozillaDocument"; if (title) { pszDocName = title; } else { pszDocName = pszGenericDocName; } long lDummy = 0; long lResult = ::DevEscape(mPrintDC, DEVESC_STARTDOC, strlen(pszDocName) + 1, pszDocName, &lDummy, NULL); mPrintingStarted = PR_TRUE; if (lResult == DEV_OK) rv = NS_OK; else rv = NS_ERROR_GFX_PRINTER_STARTDOC; if (title != nsnull) { nsMemory::Free(title); } } return rv; }