.doc text ändern

neela

Bekanntes Mitglied
Hallo
ich stehe vor dem Problem das ich aus meinen Java Programm heraus in einer doc-datei den Text anpassen muss.
Ich habe schon die api von POI durchforstet aber bin nicht wirklich fündig geworden
Könnt ihr mir vlt weiter helfen?

Vielen Dank
 

neela

Bekanntes Mitglied
ich habe es jetzt folgendermaßen probiert

Java:
  HWPFDocument doc;
				try {
					doc = new HWPFDocument(new FileInputStream("C:\\Desktop\\Blubber.doc"));
				

	            Range range = doc.getRange();
	            range.replaceText("*Blubber*", "blub");
	            OutputStream out = new FileOutputStream("C:\\Desktop\\Blubber2.doc");
	            
	            doc.write(out);
	            
	            out.flush();
	            out.close();

Die doc Datei besteht nur aus dem String *Blubber*
das Programm legt mir die Datei Blubber2 an jedoch kann ich diese nicht öffnen.

Word bringt die Fehlermeldung das das Programm zu Umfangreich ist
 
G

Gonzo17

Gast
Sorry, bitte bleib doch in einem Thread. Kann man das hier closen / zusammenführen? Bringt ja nix wenn wir parallel in zwei Threads schreiben und du hier schon weiter bist wie im anderen.
 

neela

Bekanntes Mitglied
Ein Einfügen am Ende des Textes mit folgenden Code funktioniert.
Java:
 HWPFDocument doc;
                try {
                    doc = new HWPFDocument(new FileInputStream("C:\\Desktop\\Blubber.doc"));
                
 
                Range range = doc.getRange();
                range.insertAfter("Versuch");

	         //  range.replaceText("*Blubber*", "blub");
                OutputStream out = new FileOutputStream("C:\\Desktop\\Blubber2.doc");
                
                doc.write(out);
                
                out.flush();
                out.close();

Also muss der Fehler in Folgender Zeile liegen
Java:
range.replaceText("*Blubber*", "blub");
Jedoch finde ich keine Fehler
 
G

Gonzo17

Gast
Bei mir ist es egal, ob ich das mache oder sogar garnichts mache (also nur einlesen und anschließend speichern). Die Datei öffnet er zwar, allerdings kommt auch jedes Mal die Meldung, dass Probleme erkannt wurden und ein Bearbeiten der Datei gefährlich sein kann. Bearbeite ich sie trotzdem, dann poppen ständig Warnungen auf, dass der Arbeitsspeicher nicht genügt, um die Datei zu bearbeiten. Ich benutze Word 2010.

Wie gesagt, wende dich an die Mailinglist. Die wissen da mehr und antworten dir auch recht schnell.
 

neela

Bekanntes Mitglied
bis jetzt hab ich von der mailinglist keine antwort
aber was ich gerade herausgefunden habe das wenn der zuersetzende text und der neue text gleich lang sind geht es warum auch immer ???:L
 
G

Gonzo17

Gast
bis jetzt hab ich von der mailinglist keine antwort
aber was ich gerade herausgefunden habe das wenn der zuersetzende text und der neue text gleich lang sind geht es warum auch immer ???:L

Du kannst dir auch einfach mal den Source-Code anschauen, ist ja Open Source. Geh einfach mal in die Methode rein und schau, was da passiert. Vielleicht fällt dann der Groschen.
 

neela

Bekanntes Mitglied
Irgendwie sieht für mich der Code richtig aus und anhand dem Beispiel weis ich nun das das irgendwie gehen muss wenn die Wörter unterschiedlich lang sind
Java:
	/**
	 * Replace (one instance of) a piece of text with another...
	 *
	 * @param pPlaceHolder
	 *            The text to be replaced (e.g., "${organization}")
	 * @param pValue
	 *            The replacement text (e.g., "Apache Software Foundation")
	 * @param pOffset
	 *            The offset or index where the text to be replaced begins
	 *            (relative to/within this <code>Range</code>)
	 */
	public void replaceText(String pPlaceHolder, String pValue, int pOffset) {
		int absPlaceHolderIndex = getStartOffset() + pOffset;
		Range subRange = new Range(absPlaceHolderIndex, (absPlaceHolderIndex + pPlaceHolder
				.length()), getDocument());

		// this Range isn't a proper parent of the subRange() so we'll have to
		// keep
		// track of an updated endOffset on our own
		int previousEndOffset = subRange.getEndOffset();

		subRange.insertBefore(pValue);

		if (subRange.getEndOffset() != previousEndOffset) {
			adjustForInsert(subRange.getEndOffset() - previousEndOffset);
		}

		// re-create the sub-range so we can delete it
		subRange = new Range((absPlaceHolderIndex + pValue.length()), (absPlaceHolderIndex
				+ pPlaceHolder.length() + pValue.length()), getDocument());

		// deletes are automagically propagated
		subRange.delete();
	}

	/**
	 * Replace (all instances of) a piece of text with another...
	 *
	 * @param pPlaceHolder
	 *            The text to be replaced (e.g., "${organization}")
	 * @param pValue
	 *            The replacement text (e.g., "Apache Software Foundation")
	 */
	public void replaceText(String pPlaceHolder, String pValue) {
		boolean keepLooking = true;
		while (keepLooking) {

			String text = text();
			int offset = text.indexOf(pPlaceHolder);
			if (offset >= 0)
				replaceText(pPlaceHolder, pValue, offset);
			else
				keepLooking = false;
		}
	}

edit: OpenOffice öffnet er problemlos nur leider bin ich gezwungen das für mircosoft zu programmieren
 
Zuletzt bearbeitet:

neela

Bekanntes Mitglied
ich verzichte nun auf jede api
da ich ja in dem .doc nur was ersetzen will und nix weiter machen will.
Ich speicher den Inhalt der Datei in einen String und dann replace ich.

Also Problem gelöst :D
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
N Das Ende von bestimmten zeilen in text datei ändern und speichern Allgemeine Java-Themen 3
O Text aus einer Textdatei rausholen, der zwischen zwei Schlüsselworten steht Allgemeine Java-Themen 4
K Bildschirm auslesen/ Text erkennen Allgemeine Java-Themen 5
berserkerdq2 Text über einen Shape anzeigen (Scenebuilder) Allgemeine Java-Themen 1
M Thymeleaf th value und th text Allgemeine Java-Themen 1
_user_q Eingegebenen Text Zeile für Zeile ausgeben lassen Allgemeine Java-Themen 11
_user_q Eingegebenen Text wiederholt schreiben lassen Allgemeine Java-Themen 9
G Darstellung von Text auf MapContext von GeoTools Allgemeine Java-Themen 2
Alex_99 Programm stürzt beim Aufruf der Funktion ab? Text ausgeben Allgemeine Java-Themen 45
Mozart53 JLabel nur meinen Text verschieben ohne Image Allgemeine Java-Themen 3
izoards Bestimmter Text aus PDF extrahieren Allgemeine Java-Themen 3
B Scanner erkennt keinen Text in Textdatei, obwohl welcher drinsteht Allgemeine Java-Themen 10
K HTMLEditor HTML Text in Rich Text umwandeln Allgemeine Java-Themen 14
kodela JDialog zeigt Text nicht an Allgemeine Java-Themen 5
L Text filtern Allgemeine Java-Themen 1
Bluedaishi TEXT Kodierung Allgemeine Java-Themen 3
J Die Letzte Zahl aus einer Text datei lesen Allgemeine Java-Themen 8
S Ini Text aus String parsen Allgemeine Java-Themen 1
M itext - Button der Text in Zwischenablage stellt Allgemeine Java-Themen 0
E CSV mit Text und Binärdaten auslesen Allgemeine Java-Themen 7
FRI3ND Datentypen Date-Array sortieren - Text mitnehmen? Allgemeine Java-Themen 7
I Text suchen und ersetzen im Word Dokument Allgemeine Java-Themen 3
windl Text mining / deep learning Allgemeine Java-Themen 0
I Text aus Input-Box entnehmen und zuweisen Allgemeine Java-Themen 1
KeexZDeveoper Text Mining Allgemeine Java-Themen 3
L Input/Output Wie kann man in der Konsole einen Text farbig ausgeben z.b in grün Allgemeine Java-Themen 6
B Arrays mit Text und Zahlen füllen Allgemeine Java-Themen 3
A Datenexport (Text und Draw) Allgemeine Java-Themen 1
L Text von txt auf JTextArea Allgemeine Java-Themen 4
A 2D-Grafik Text in ein Bild schreiben Allgemeine Java-Themen 11
T Textarea text wird immer überschrieben Allgemeine Java-Themen 4
I Apache POI Word Text einfügen Allgemeine Java-Themen 26
T itext: text in ein textfeld hinzufügen Allgemeine Java-Themen 2
B Farbiger Text in der Konsole Allgemeine Java-Themen 1
K Pdf mit dynamischem Text mit iText Allgemeine Java-Themen 0
D Text Analyzer Allgemeine Java-Themen 2
RalleYTN Audiodatein(.ogg/.wav) in Text konvertieren Allgemeine Java-Themen 0
L Nach Button drücken den Text festspeichern Allgemeine Java-Themen 9
X Löschen von einer Zeile in einer Text Datei. Klappt nicht. Allgemeine Java-Themen 4
J Text lesen und in Variablen speichern Allgemeine Java-Themen 3
S Text in mehreren Sprachen korrekt darstellen? Wie waehle ich die Fonts aus..? Allgemeine Java-Themen 0
J Java - Zeile aus Text datei löschen Allgemeine Java-Themen 13
M Text in erstelltes Excelfile schreiben Allgemeine Java-Themen 6
N Input/Output Website Text auslesen und bestimmte Zeilen wiedergeben Allgemeine Java-Themen 4
W Arraylist Text Suchen und Datei löschen Allgemeine Java-Themen 5
P HTML Text bearbeiten Allgemeine Java-Themen 1
B JFrame Text Ausgabe Allgemeine Java-Themen 7
G Makierter Text in Arbeitsspeicher Allgemeine Java-Themen 2
B Text in die Mitte der Konsole schreiben. Allgemeine Java-Themen 1
M Variablen Variablen in Text einbinden Allgemeine Java-Themen 5
P iText Text zentrieren Allgemeine Java-Themen 3
J Verschlüsselung von Text? Allgemeine Java-Themen 2
M Text datei in java jar datei einbinden Allgemeine Java-Themen 4
S Swing Text in eine JTextArea schreiben Allgemeine Java-Themen 17
M Verschlüsselung von Text und Files durch RSA (Encoding Problem) Allgemeine Java-Themen 7
S Robuste Methode um Text von HTML code zu extrahieren..? Allgemeine Java-Themen 6
achillesat Rich Text Editor Allgemeine Java-Themen 2
M CMD-Text anzeigen Allgemeine Java-Themen 10
G Text Mining Allgemeine Java-Themen 7
B Text auf Standarddrucker drucken Allgemeine Java-Themen 3
S Library fuer Internet-Text-Daten-Quellen..? Allgemeine Java-Themen 8
nrg Find and replace Text docx Allgemeine Java-Themen 6
M Ein bestimmtes Wort in einem Text zählen (String in String) Allgemeine Java-Themen 9
S Text in for Schleife in Label einfügen Allgemeine Java-Themen 4
M Funktion gesucht: Text vektorisieren Allgemeine Java-Themen 20
D Wort in Text mit >100.000 Wörter finden Allgemeine Java-Themen 7
B Text wird nicht richtig angezeigt Allgemeine Java-Themen 9
Q Text Datei einlesen Allgemeine Java-Themen 27
R Komponente hat nicht die gesetzten Eingeschaften (Text, Farbe) Allgemeine Java-Themen 3
M NOA an den Source Text des Dokumentes kommen Allgemeine Java-Themen 7
A Text via RegEx durchsuchen und teile ersetzten Allgemeine Java-Themen 5
O Text mit Wildcard gegen regulären Ausdruck prüfen Allgemeine Java-Themen 3
A Umwandlung von Text/Zeichen in Polynome Allgemeine Java-Themen 8
Y Eclipse ppt Folie erzeugen + text plazieren Allgemeine Java-Themen 4
cedi Eingegebenen Text in der Konsole nicht sichtbar machen oder nur in Sternchen anzeigen Allgemeine Java-Themen 2
D markierten Text kopieren Allgemeine Java-Themen 2
P Doppeltverkettete Listen + Text Allgemeine Java-Themen 5
DEvent embedded Object Database in Text Format Allgemeine Java-Themen 5
C Datei als ASCII text einlesen ? Allgemeine Java-Themen 16
R Texterkennung - Text aus einem/r Bild/Grafik auslesen Allgemeine Java-Themen 2
M String in Html Text umwandeln Allgemeine Java-Themen 2
T eingefügter Text nach dem rendern spiegelverkehrt Allgemeine Java-Themen 2
lumo encoding einer text-datei Allgemeine Java-Themen 2
E Text ans Ende einer Textdatei anfügen Allgemeine Java-Themen 2
E JTextArea / JEditorPane + Text formatieren Allgemeine Java-Themen 3
R Java Text anderer Schriftart einlesen Allgemeine Java-Themen 2
A AES Key aus Text erzeugen Allgemeine Java-Themen 2
S Koordinaten aus einem Text filtern Allgemeine Java-Themen 11
turmaline Text aus Web-Seiten auslesen Allgemeine Java-Themen 1
MQue Graphics2D Text Allgemeine Java-Themen 2
U Text verschmelzen Allgemeine Java-Themen 8
martin82 Java-Code aus Text-Datei parsen Allgemeine Java-Themen 3
W Text curser auswählen für Paste Allgemeine Java-Themen 15
G HTML-Datei einlesen, Plain Text in Textfile speichern Allgemeine Java-Themen 4
S Bestes Text file encoding..? Allgemeine Java-Themen 36
B UTF-8 Text Allgemeine Java-Themen 3
H Passwortgschützter Text Allgemeine Java-Themen 13
C IReport Feldberechnen und als Text ausgeben Allgemeine Java-Themen 4
D Bild in text tabelle umwandeln Allgemeine Java-Themen 2
W Auf markierten Text zugreifen? Allgemeine Java-Themen 5

Ähnliche Java Themen

Neue Themen


Oben