Zum Inhalt springen
View in the app

A better way to browse. Learn more.

Fachinformatiker.de

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.

Html5 PDF-Url mit Argumenten führt zu Fehler bei der Xml-Erstellung

Empfohlene Antworten

Veröffentlicht

Hallo,

ich habe eine Html mit einem object tag in dem die Url zu einer PDf angegeben ist.

Die Url beinhaltet ebenfals die Argumente für Acrobate Reader und sieht folgendermaßen aus:

<object data="Vierer_all_2\Customers.pdf#toolbar=0&navpanes=0&scrollbar=0&view=FitH"...></object>
Den Style und den Rest habe ich hier weggelassen. Die Pdf wird im Browser sauber angezeigt. An anderer Stelle lese ich die HTML aber als Xml ein um mir weitere Informationen ausgeben zu lassen.
XmlDocument doc = new XmlDocument();

            XmlReaderSettings settings = new XmlReaderSettings();


            settings.CheckCharacters = false;

            settings.DtdProcessing = DtdProcessing.Ignore;


            using (XmlReader reader = XmlReader.Create(response.GetResponseStream(), settings))

            {                

                doc.Load(reader);

            }

Jetzt bekomme ich einen Fehler, da der HtmlReader mit den Argumenten innerhalb der Url nicht zurechtkommt.

'=' is an unexpected token. The expected token is ';'. Line 15, position 60.

(Position 60 ist das '=' nach navpanes)

Gibt es eine Möglichkeit dem XmlReader anzugeben, dass die Url nicht eingelesen werden soll oder die Url so umzustellen, dass dieser Fehler nicht kommt?

Hi Connor,

leider wird die PDF nach dem Maskieren der Url nicht mehr korrekt angezeigt.

D.h. Acrobat Reader kann mit den maskierten Zeichen nix anfangen und die Parameter werden ignoriert.

Hallo etreu,

hab ich auch schon versucht, selbes Ergebnis.

Na wenn ich einmal damit anfange, kann ich auch direkt auf dem Stream arbeiten und mir die Infos ziehen die ich brauche.

Hatte gehofft ich kann mir das sparen und einfach die Url maskieren oder dem Document sagen, dass die Url ignoriert werden soll.

Hab jetzt den Stream ausgelesen und arbeite auf dem string.

Sollte jmd noch was einfallen wäre ich trotzdem sehr erfreut.

Wenn du den kompletten Inhalt des Streams im Speicher nutzen kannst. Wenn die Daten umfangreicher werden oder mehrere Nutzer die Aktion ausführen geht dir schnell der Arbeitsspeicher aus.

Das ist mir schon klar.

Da ich aber mit relativ kleinen Htmls arbeite, die notwendigen Daten innerhalb einiger Sekunden gezogen sind und der Stream danach disposed wird, ist das kein Problem.

Ausserdem scheint mir die XmlDocument.Load()-Methode harwarehungriger zu sein als die Methode die Daten aus dem string zu parsen.

"&" ist ein Sonderzeichen in einem XML-Dokument. Der versucht eine Entität namens: "&navpanes=" zu finden, welche ungültig ist ("=" ist als Namensteil nicht erlaubt).

Versuch mal:

<object data="Vierer_all_2\Customers.pdf#toolbar=0&navpanes=0&scrollbar=0&view=FitH"...></object>

Siehe auch Extensible Markup Language (XML) 1.0 (Fifth Edition)

Gruß,

runtimeterror

ps: Sorry, habe erst jetzt gelesen, dass du das "maskieren" schon versucht hattest. Wenn die obige Fassung nicht funktioniert, dann hat dein PDF-Reader einen Fehler - auch wenn dir das nicht weiterhilft :/

Bearbeitet von runtimeterror

Archiv

Dieses Thema wurde archiviert und kann nicht mehr beantwortet werden.

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.