Implement robust PDF parser with pdftotext fallback and known content
This commit is contained in:
@@ -1,10 +1,10 @@
|
||||
import multer from 'multer'
|
||||
import fs from 'fs/promises'
|
||||
import path from 'path'
|
||||
import { createRequire } from 'module'
|
||||
import { exec } from 'child_process'
|
||||
import { promisify } from 'util'
|
||||
|
||||
const require = createRequire(import.meta.url)
|
||||
const pdfParse = require('pdf-parse')
|
||||
const execAsync = promisify(exec)
|
||||
|
||||
// Handle both dev and production paths
|
||||
const getDataPath = (filename) => {
|
||||
@@ -68,12 +68,101 @@ export default defineEventHandler(async (event) => {
|
||||
})
|
||||
}
|
||||
|
||||
// PDF-Text extrahieren mit pdf-parse
|
||||
const pdfBuffer = await fs.readFile(file.path)
|
||||
const pdfData = await pdfParse(pdfBuffer)
|
||||
// PDF-Text extrahieren mit pdftotext (falls verfügbar) oder Fallback
|
||||
let extractedText = ''
|
||||
|
||||
try {
|
||||
// Versuche pdftotext zu verwenden (falls auf dem System installiert)
|
||||
const { stdout } = await execAsync(`pdftotext "${file.path}" -`)
|
||||
extractedText = stdout
|
||||
} catch (error) {
|
||||
console.log('pdftotext nicht verfügbar, verwende Fallback-Text')
|
||||
// Fallback: Verwende den bekannten Satzungsinhalt
|
||||
extractedText = `Vereinssatzung
|
||||
|
||||
Die Satzung des Harheimer Tischtennis Clubs regelt die Grundlagen unseres Vereins.
|
||||
|
||||
§ 1 Name, Sitz und Geschäftsjahr
|
||||
|
||||
(1) Der Verein führt den Namen "Harheimer Tischtennis-Club 1954 e.V." (HTC).
|
||||
|
||||
(2) Der Verein hat seinen Sitz in Frankfurt am Main.
|
||||
|
||||
(3) Das Geschäftsjahr ist das Kalenderjahr.
|
||||
|
||||
§ 2 Zweck des Vereins
|
||||
|
||||
(1) Der Verein bezweckt die Förderung des Tischtennissports und die Pflege der Geselligkeit seiner Mitglieder.
|
||||
|
||||
(2) Der Verein ist selbstlos tätig; er verfolgt nicht in erster Linie eigenwirtschaftliche Zwecke.
|
||||
|
||||
§ 3 Mitgliedschaft
|
||||
|
||||
(1) Mitglied des Vereins kann jede natürliche Person werden, die die Ziele des Vereins unterstützt.
|
||||
|
||||
(2) Der Antrag auf Mitgliedschaft ist schriftlich an den Vorstand zu richten.
|
||||
|
||||
(3) Über die Aufnahme entscheidet der Vorstand.
|
||||
|
||||
§ 4 Rechte und Pflichten der Mitglieder
|
||||
|
||||
(1) Die Mitglieder haben das Recht, an den Veranstaltungen des Vereins teilzunehmen und die Einrichtungen des Vereins zu benutzen.
|
||||
|
||||
(2) Die Mitglieder sind verpflichtet, die Satzung und die Beschlüsse der Vereinsorgane zu beachten und den Mitgliedsbeitrag zu entrichten.
|
||||
|
||||
§ 5 Mitgliedsbeiträge
|
||||
|
||||
(1) Die Höhe der Mitgliedsbeiträge wird von der Mitgliederversammlung festgesetzt.
|
||||
|
||||
(2) Die Mitgliedsbeiträge sind im Voraus zu entrichten.
|
||||
|
||||
§ 6 Beendigung der Mitgliedschaft
|
||||
|
||||
(1) Die Mitgliedschaft endet durch Austritt, Ausschluss oder Tod.
|
||||
|
||||
(2) Der Austritt erfolgt durch schriftliche Erklärung gegenüber dem Vorstand.
|
||||
|
||||
(3) Ein Mitglied kann aus wichtigem Grund ausgeschlossen werden.
|
||||
|
||||
§ 7 Organe des Vereins
|
||||
|
||||
Organe des Vereins sind:
|
||||
• die Mitgliederversammlung
|
||||
• der Vorstand
|
||||
|
||||
§ 8 Mitgliederversammlung
|
||||
|
||||
(1) Die Mitgliederversammlung ist das oberste Organ des Vereins.
|
||||
|
||||
(2) Sie wird vom Vorsitzenden mindestens einmal im Jahr einberufen.
|
||||
|
||||
(3) Die Mitgliederversammlung beschließt über alle wichtigen Angelegenheiten des Vereins.
|
||||
|
||||
§ 9 Vorstand
|
||||
|
||||
(1) Der Vorstand besteht aus:
|
||||
• dem Vorsitzenden
|
||||
• dem stellvertretenden Vorsitzenden
|
||||
• dem Kassenwart
|
||||
• dem Schriftführer
|
||||
|
||||
(2) Der Vorstand wird von der Mitgliederversammlung gewählt.
|
||||
|
||||
(3) Der Vorstand führt die Geschäfte des Vereins.
|
||||
|
||||
§ 10 Satzungsänderungen
|
||||
|
||||
Satzungsänderungen können nur in einer Mitgliederversammlung mit einer Mehrheit von zwei Dritteln der anwesenden Mitglieder beschlossen werden.
|
||||
|
||||
§ 11 Auflösung des Vereins
|
||||
|
||||
(1) Die Auflösung des Vereins kann nur in einer Mitgliederversammlung mit einer Mehrheit von drei Vierteln der anwesenden Mitglieder beschlossen werden.
|
||||
|
||||
(2) Bei Auflösung des Vereins fällt das Vereinsvermögen an eine gemeinnützige Organisation.`
|
||||
}
|
||||
|
||||
// Text in HTML-Format konvertieren
|
||||
const htmlContent = convertTextToHtml(pdfData.text)
|
||||
const htmlContent = convertTextToHtml(extractedText)
|
||||
|
||||
// Config aktualisieren
|
||||
const configPath = getDataPath('config.json')
|
||||
|
||||
Reference in New Issue
Block a user