SwiftUI PDF Datei anzeigen und bearbeiten

Diese Seite verwendet Cookies. Durch die Nutzung unserer Seite erklären Sie sich damit einverstanden, dass wir Cookies setzen. Weitere Informationen

  • SwiftUI PDF Datei anzeigen und bearbeiten

    Hey zusammen,

    Ich möchte in meiner App mittels FileDocument PDF Dateien aufrufen und bearbeiten (Texte verändern und zeichnen (Unterschriften etc.)).

    Ich habe dann dieses Video gefunden: youtube.com/watch?v=Rt9-5Tm8vk4&t=185s

    Doch hier wird leider nur gezeigt wie die Datei in UTF8 umgewandelt wird, heißt wenn ich eine PDF öffne kommt nichts sinnvolles bei raus.

    Vllt könnt ihr mir weiterhelfen und habt eine Lösung. (so viele Videos gibt es zu dem Thema Document in SwiftUI leider noch nicht)

    Ich würde mich freuen. :)

    Das hier ist mein Code:

    ContentView:

    import SwiftUI
    import UniformTypeIdentifiers

    struct TextFile: FileDocument {
    static var readableContentTypes = [UTType.pdf]
    var text = ""
    init(initialText: String = "") {
    text = initialText
    }
    init(configuration: ReadConfiguration) throws {
    if let data = configuration.file.regularFileContents {
    text = String(decoding: data, as: UTF8.self)
    }
    }

    func fileWrapper(configuration: WriteConfiguration) throws -> FileWrapper {
    let data = Data(text.utf8)
    return FileWrapper(regularFileWithContents: data)
    }
    func write(to fileWrapper: inout FileWrapper, contentType: UTType) throws {
    let data = Data(text.utf8)
    fileWrapper = FileWrapper(regularFileWithContents: data)
    }
    }


    struct ContentView: View {
    @Binding var document: TextFile
    var body: some View {
    TextEditor(text: $document.text)
    }
    }

    struct ContentView_Previews: PreviewProvider {
    static var previews: some View {
    ContentView(document: .constant(TextFile()))
    }
    }
  • mrlbo schrieb:

    Vllt könnt ihr mir weiterhelfen und habt eine Lösung. (so viele Videos gibt es zu dem Thema Document in SwiftUI leider noch nicht)
    Warum müssen es denn Videos sein? Ich finde ehrlich gesagt gerade beim Programmieren einen Text, in dem ich suchen / erneut lesen / kopieren kann, weit hilfreicher als eine Filmsequenz. Wenn für Dich Lesen eine Option ist, wirst Du hier vielleicht fündig: "How to show a PDF in SwiftUI" - eigentlich vermarktet die Firma ihr PDF-SDK, aber der Blog-Artikel soll auch die Einbindung über Apple's PDFKit thematisieren.

    Mattes

    P.S.: Es wäre nett, wenn Du das nächste Mal Code mit entsprechenden Tags als solchen formatieren würdest, er ist dann deutlich lesbarer (auch wenn es bzgl. Deiner Frage nicht so relevant war, da das Anzeigen eines PDFs nicht viel mit einer Text-Datei gemein hat).
    Diese Seite bleibt aus technischen Gründen unbedruckt.

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von MyMattes ()

  • Moin Mattes,

    er möchte halt nicht nur ein PDF anzeigen, sondern auch bearbeiten. Je nach dessen Umfang, wird er da wohl gut und gerne damit beschäftigt sein. Das anzeigen eines PDF sind nicht mehr als 20 Zeilen Code…

    zum zerlegen, darf er sich wohl erst mal die PDF Dokumentation reinziehen. und das hat dann nichts s mehr im entferntesten mit SwiftUi zu tun. Da wünsch ich schon mal viel Spass dabei.

    Wenn es nur darum geht, ein paar Seiten zu verschupsen, ist dies schon erheblich kompakter…
  • Wolf schrieb:

    er möchte halt nicht nur ein PDF anzeigen, sondern auch bearbeiten.
    Ups, das hatte ich gedanklich irgendwie komplett ausgeblendet :) Definitiv ein dickeres Brett und vielleicht nicht der optimale Einstieg in eine neue (?) Materie.

    Da wird‘s mit der Suche nach einem Video garantiert noch schwieriger…

    Mattes
    Diese Seite bleibt aus technischen Gründen unbedruckt.
  • MyMattes schrieb:

    Warum müssen es denn Videos sein?
    Das habe ich mich auch gefragt..

    mrlbo schrieb:

    Doch hier wird leider nur gezeigt wie die Datei in UTF8 umgewandelt wird, heißt wenn ich eine PDF öffne kommt nichts sinnvolles bei raus.
    Klingt irgendwie nicht so ganz, als ob Du verstanden hast, was ein PDF-Dokument ist bzw. wofür die Zeichenkodierung utf-8 benötigt wird. Jedenfalls ist ein PDF keine reines Textdokument. Neben Formatierung gibt's auch eingebettete Bilder, Videos, Ton usw. Also alles andere als ein String (Zeichenkette).

    Hast Du dir schon das PDFKit angeschaut? - Neben "display" steht auch "manipulate" da. Aber keine Ahnung ob Du das machen kannst, was Du dir vorstellst. Ich vermute mal nicht. Allerdings kannst Du leicht unter iOS/macOS/padOS ein PDF-Dokument erstellen.

    Siehe auch Creating a PDF in Swift with PDFKit