Mit dBase wird der .NET Code von mir nicht funktionieren - das ist dann soweit klar. Aber für dBase haben wir leider keinen so komfortablen Wrapper wir für .NET. Das hat sich nach meiner Erinnerung auch nicht geändert - die Unterstützung wurde bisher immer durch ein Mitglied der bBase-Community gewartet, wir haben da aktiv nichts entfernt. Vermutlich müsste man bei LlPrint[WithBox]Start(…) einen Export als Ziel angeben und dann einige Optionen für den ZUGFeRD-Export setzen. Der Artikel zeigt das Prinzip dafür ganz gut: Export ohne Benutzerinteraktion direkt über die API
Für ZUGFeRD müsste man noch ein paar mehr und pasende PDF-Export-Optionen (siehe auch PDF-Exportmodul: Optionen) setzen und das würde dann ungefähr so aussehen können:
...
// Setzen der Export Parameter
// wir exportieren eine PDF-Datei mit dem Namen "export.pdf" in das Verzeichnis "c:\users\public" ohne Dialogfenster
::LlXSetParameter(m_hLlJob, LL_LLX_EXTENSIONTYPE_EXPORT, _T("PDF"), _T("Export.File"), _T("export.pdf"));
::LlXSetParameter(m_hLlJob, LL_LLX_EXTENSIONTYPE_EXPORT, _T("PDF"), _T("Export.Path"), _T("c:\\users\\public\\"));
::LlXSetParameter(m_hLlJob, LL_LLX_EXTENSIONTYPE_EXPORT, _T("PDF"), _T("Export.Quiet"), _T("1"));
// ZUGFeRD...
::LlXSetParameter(m_hLlJob, LL_LLX_EXTENSIONTYPE_EXPORT, _T("PDF"), _T("PDF.ZUGFeRDConformanceLevel"), _T("EXTENDED"));
::LlXSetParameter(m_hLlJob, LL_LLX_EXTENSIONTYPE_EXPORT, _T("PDF"), _T("PDF.ZUGFeRDVersion"), _T("2.1"));
::LlXSetParameter(m_hLlJob, LL_LLX_EXTENSIONTYPE_EXPORT, _T("PDF"), _T("PDF.ZUGFeRDXmlPath"), _T("ZUGFeRD-invoice.xml"));
// Druck starten ohne den Fortschrittsbalken
if(::LlPrintStart(m_hLlJob, LL_PROJECT_LIST, sFileName, LL_PRINT_EXPORT, 0) < 0)
return; // Fehler
// Setzen des Exportformats PDF
::LlPrintSetOptionString(m_hLlJob, LL_PRNOPTSTR_EXPORT, "PDF");
// Jetzt kommt die normale Druckschleife mit ::LlPrint(), ::LlPrintFields(), ::LlPrintEnd() etc.
...