Memory Stream Export - Größe und optionen

Guten Tag,

beim Export eines Reports:

MemoryStream memStream = new MemoryStream();
LL.DataSource = dt;

ExportConfiguration exconfig = new ExportConfiguration(LlExportTarget.Pdf, memStream, ReportVorlage);

Ist mir aufgefallen, dass Texte innerhalb einer Tabelle von einem weiteren Programm innerhalb der PDF nicht als Texte sondern Bild o.Ä. gewertet werden. Beim Druck aus dem Designer passiert das nicht.

Außerdem ist diese PDF ziemlich groß (>20MB) für den Inhalt (Eine einzige Tabelle auf mehrere Seiten mit Mehreren Gruppenköpfen und Füßen).

Gibt es bestimmte Exportoption die ich setzen kann um diesen Problemen vorzubeugen? Das sind die aktuellen Optionen:

exconfig.ExportOptions.Add(LlExportOption.PdfConformance, "pdfa2a");
exconfig.ExportOptions.Add(LlExportOption.PdfTitle, filename);
exconfig.ExportOptions.Add(LlExportOption.PdfAuthor, "Firma");

Vielen Dank für Ihre Hilfe.

Hi,

der Code-Ausschnitt selbst ist nicht auffällig. Damit lässt sich das beschriebene Verhalten auf unserer Seite auch nicht nachstellen. Welche LL-Version ist im Einsatz? Werden spezielle Fonts verwendet?

Testhalber haben wir hierzu das mitgelieferte .NET Export Sample angepasst. Das Sample findet sich hier:

…\combit\LL30\Beispiele\Microsoft .NET\.NET 8[.NET Framework 4]\WinForms\Export Sample

Die Änderungen im “Create”-Button sind wie folgt:

                LL.ExportOptions.Add(LlExportOption.PdfConformance, "pdfa2a");
                LL.ExportOptions.Add(LlExportOption.PdfTitle, "simple.lst");
                LL.ExportOptions.Add(LlExportOption.PdfAuthor, "Firma");

                MemoryStream myStream = new MemoryStream();

                ExportConfiguration exportConfiguration2 = new ExportConfiguration(LlExportTarget.Pdf, myStream, "simple.lst");
                exportConfiguration2.ShowResult = false;

                // Start export
                LL.Export(exportConfiguration2);

                //Write Stream back to file
                using (FileStream fileStream = new FileStream(@"C:\temp\Exports\export_stream.pdf", FileMode.Create, FileAccess.Write))
                {
                    myStream.WriteTo(fileStream);
                }

Das PDF ähnelt deinem PDF vmtl. nicht mal annähernd. Daher die Frage: kannst du das mit dem Sample ebenfalls nachstellen bzw. das Sample dahingehend anpassen, so dass sich das Verhalten damit nachstellen lässt?

Grüße,
Chris

Leider kann ich diese Beispieldatei nicht so ändern, dass es dem mir vorliegenden Fall entspricht. Das Hauptproblem ist das ich beim Drucken in dieses Sub-Programm eine viel größere Datei bekomme als z.B. beim Erstellen einer PDF und das Texte einer Tabelle nicht als Texte erkannt werden, sondern wohl als zusammenhängendes Bild. Wissen Sie zufällig, ob beim Druck dahingehend irgendwelche Optionen gesetzt werden müssen um kleinere Dateien zu erhalten und diese Tabellenkonvertierung zu vermeiden?

Passiert in dem Sub-Programm noch etwas anderes? So etwas wie ein Export in ein anderes Format oder eine Konvertierung und anschließende Einbettung in ein PDF? Die LL Programmierer-Referenz listet alle programmatischen Einflussmöglichkeiten beim PDF-Export. Sie finden Sie Programmierer-Referenz sowohl als PDF in der LL Installation als auch online: Programmierschnittstelle PDF-Export

Alternativ hilft unser Support-Team natürlich auch gerne weiter. Vermutlich würde ein Austausch von Log(s) und der PDF-Datei(en) im Rahmen eines Support-Cases weitere Erkenntnisse liefern, die zur Lösung beitragen können.

Das Subprogramm ist wird durch den Druck aufgerufen, man druckt quasi dort rein. Dann wird darin ausgewertet, welche texte einen neuen Abschnitt einleiten. Wenn man es vorher als PDF konvertiert ist die Datei zwar kleiner, die Texterkennung funktioniert aber nicht. Bei Druck direkt in das programm ist die Datei um ein vielfaches größer und die Texterkennung klappt nicht.

Der Export in die PDF wird nicht beeinflusst, durch äußeres.

Da der Fehler erst im anderen programm auftritt kann ich leider keine Logs zu LL zur verfügung stellen

Noch ein Gedanke. Der Report, der am Ende exportiert wird, beinhaltet dieser den eigentlichen Inhalt als PDF-Objekt? Wenn ja, dann könnte geprüft werden, ob für das PDF-Objekt in dem Report die Eigenschaft Schriftartenbehandlung nicht auf “Als Kurven” steht. Das könnte den Größenunterschied und die fehlende Texterkennung noch erklären. In dem Fall könnte “Eingebettete Schriftarten verwenden” Abhilfe schaffen.

Der am Ende exportierte Report beinhaltet kein eigenes PDF, wird nur als solche gedruckt.

Der einzige uns bekannte Workaround ist die PDF erst zu exportieren. Die dann entstehende Datei ist kleiner, die kann dann manuell für den Druck verwendet werden.

Wir haben auch mit verschiedenen PDF-Encodings getestet, ob das andere Programm möglicherweise nicht kompatibel ist, daran lag es allerdings nicht.