Acronaut Diskussions Forum Home

Freies User Forum für

ADOBE® ACROBAT®

Navigation
Nicht angemeldet

Login | Registrieren 

  

Suche

Erweiterte Suche

Newsletter

Mitgliederliste

Kalender

Moderatoren/Partner

Hilfe

Banner

Kontakt/Impressum
Zahlen als Wort(e)
 Moderiert von: acronaut Produkt: Adobe LiveCycle Designer V9  

Neue Diskussion

Antworten

Drucken
VerfasserBericht
armine
Administrator
 

Eintragen seit: 15 Mai 2009
Herkunft:  
Berichte: 2343
Status:  Offline
 Geschrieben: 2 Jan 2012 11:24

Text übernehmen

Antworten
Hallo,

im Web habe ich einige wenige Beispiele auf deutsch gefunden, aber leider ohne Code. Die vom mir gefundenen Eindeuschungen von ConvertToWords führen manchmal nicht nur zu putzigen Ergebnissen, sondern ignoriern auch, dass eintausend Millionen keine "billion", sondern nach mathematischem (und auch deutschem) Verständniss eine Milliarde ist.

Die beigestellte Funktion (JavaScript) akzeptiert die Übergabe von Zahlen (LCD unterstüzt 15 Stellen) und Strings (das geht bis in die Billiarden und damit sollte von der normalen Rechnung bis zu den Staatschulden alles abgedeckt sein). Die Dezimalen werden abgeschnitten. Der Rückgabewert ist eine (hoffentlich dudenkonforme) Zeichenkette.

Gruß
armine

Anlage: Zahlen als Wort.pdf (175 Mal aufgenommen)

uli1962
Member
 

Eintragen seit: 9 Jun 2013
Herkunft:  
Berichte: 3
Status:  Offline
 Geschrieben: 2 Aug 2013 10:03

Text übernehmen

Antworten
wie kann man den Dokumenteschutz aufheben

armine
Administrator
 

Eintragen seit: 15 Mai 2009
Herkunft:  
Berichte: 2343
Status:  Offline
 Geschrieben: 2 Aug 2013 12:01

Text übernehmen

Antworten
Hallo uli1962,

das PDF ist nicht geschützt. Zum Öffnen brauchst du den Adobe LiveCycle Designer.

vg armine

uli1962
Member
 

Eintragen seit: 9 Jun 2013
Herkunft:  
Berichte: 3
Status:  Offline
 Geschrieben: 2 Aug 2013 14:02

Text übernehmen

Antworten
ich arbeite mit MAC, dafür ist LC leider nicht erhältlich.
kann ich an das script kommen für Acrobat Pro?

armine
Administrator
 

Eintragen seit: 15 Mai 2009
Herkunft:  
Berichte: 2343
Status:  Offline
 Geschrieben: 2 Aug 2013 17:12

Text übernehmen

Antworten
Hallo uli1962,

mit Code für den Acrobat kann nicht dienen, aber vielleicht machst du eine Übersetzung und stellst sie dem Forum zur Verfügung. Mittlerweile gibt es eine überarbeite Version die
– auch Dezimale in Worten
– Dezimale als Bruch
– Dezimale als Bruch mit führenden Nullen und
– ein neg. Vorzeichen als „minus“
ausgibt.

vg armine

Der Code der Funktion (in kleiner Schrift, um ungewollte Zeilenumbrüche möglichst zu vermeiden):
function Zahl_in_Worten(Zahl, Einheit, Dezimale, Zähler, NumNenner) {
/*    Zahl        = Zahl mit max. 15 signifikanten Stellen.
    Einheit        = Name der Einheit und gegebenfalls ihrer Unterteilung (z.B. ["Euro","Cent"], immer als Array übergeben).
                  Werden keine Dezimalen in Ziffern bzw. Brüche ausgegeben, darf nur der Name der Einheit übergeben werden (z.B. ["Euro"]).
    Dezimale    = Anzahl der Nachkommastellen; 0 bei Ganzzahlen oder – abhängig von der Einheit – 2 bzw. 3.
                  Werden mehr Nachkommastellen übergeben, wird auf diese Genauigkeit gerundet. Bei Brüchen: Auflösung des Zählers.
    Zähler        = Flag für die Ausgabe als Bruch und Darstellung des Zählers (0 ~ mit führenden Nullen, 1 ~ ohne führende Nullen)
    NumNenner    = Flag für die Ausgabe des Nenners ("0" ergibt bei Einheit == 2.19 eine Ausgabe von "zwei und 19/100 Euro"; "1" führt zur Ausgabe "zwei Euro und 19 Cent")
*/
    var Einer    = ["", "ein", "zwei", "drei", "vier", "fünf", "sechs", "sieben", "acht", "neun", "zehn",
                    "elf", "zwölf", "dreizehn", "vierzehn", "fünfzehn", "sechzehn", "siebzehn", "achtzehn", "neunzehn"] ;
    var Zehner    = ["", "", "zwanzig", "dreißig", "vierzig", "fünfzig", "sechzig", "siebzig", "achtzig", "neunzig"] ;
    var Gruppe    = ["", "tausend", "Million", "Milliarde", "Billion", "Billiarde"] ;
    var Worte    = (Zahl < 0) ? "minus " : "" ;
    Zahl = (Math.round(Math.abs(Zahl) * Math.pow(10, Dezimale)) / Math.pow(10, Dezimale)).toString().split(/\./) ;
    Zahl[1] = Zahl[1] ? Zahl[1] * Math.pow(10, Dezimale - Zahl[1].length) : 0 ;
    if (Zähler != undefined) {
        var Nenner = Math.pow(10, Dezimale) ;
        Zähler = Zähler ? Zahl[1] : [(Zahl[1] + Nenner).toString().substr(1)], Zahl[1][Zähler] ;
        if (NumNenner) {
            Zähler = "und " + Zähler + "/" + Nenner + " " + Einheit[0]
        } else {
            Zähler = Einheit[0] + " und " + Zähler + Einheit[1] ;
            Einheit.pop()
        }
    }
    for (var x = 0; x < Einheit.length; x++) {
        Worte =    Worte + (Zahl[x] > 0 ? "" : "null") ;
        Glieder = new Array() ;
        for (var i = 0; Zahl[x] > 0; i++) {
            Glieder = Zahl[x] % 1000 ;        // segmentweise ins Array und ...
            Zahl[x] = Math.floor(Zahl[x] / 1000)
        }
        for (i = i; i >= 0; i--) {                // ... segmentweise verarbeitet
            if (!Glieder) {
                if (i == 1 && Glieder[0] > 0 && Glieder[1] == 0 && Dezimale == undefined) Worte = Worte + "und " ;
            } else {
                if (Glieder > 99) {
                    Worte = Worte + Einer[Math.floor(Glieder / 100)] + "hundert"
                } else if (i == 0 && Glieder[1]) {
                    Worte = Worte + "und"
                }
                if (Glieder % 100 < 20) {
                    Worte = Worte + Einer[Math.floor(Glieder % 100)]
                } else {
                    var Hilfszahl = Glieder + 1000 ;
                    var Hilfsziffer = Hilfszahl - Math.floor(Hilfszahl / 10) * 10 ;
                    Worte = Worte + Einer[Hilfsziffer] ;
                    if (Hilfszahl) Worte = Worte + (Hilfsziffer ? "und" : "") + Zehner[Math.floor(Hilfszahl % 100 / 10)] ;
                }
                if (i < 2) {                                     // gilt bei < 1 000 000
                    Worte = Worte + Gruppe ;
                } else {
                    if (Glieder == 1) {
                        Worte = Worte + "e " + Gruppe + " "    // ein"e" Million
                    } else if (i == 2 || i == 4) {
                        Worte = Worte + " " + Gruppe + "en "    // x Million"en" / Billion"en"
                    } else if (i > 2) {
                        Worte = Worte + " " + Gruppe + "n "    // x Milliarde"n" / Billiarde"n"
                    }
                }
            }
        }
        Worte =    Worte + " " + Einheit[x] + (Einheit[x+1] ? " und " : "") ;
    }
    if (Zähler == undefined) {
        return Worte
    } else {
        return Worte.replace(Einheit[0],"") + Zähler
    }
}


Anlage: Zahlen als Wort 2.pdf (86 Mal aufgenommen)

uli1962
Member
 

Eintragen seit: 9 Jun 2013
Herkunft:  
Berichte: 3
Status:  Offline
 Geschrieben: 2 Aug 2013 17:19

Text übernehmen

Antworten
Tausend Dank
Ich werde sehen was ich tun kann
Gruss Uli

pes
Member
 

Eintragen seit: 17 Feb 2016
Herkunft:  
Berichte: 1
Status:  Offline
 Geschrieben: 10 Jun 2016 16:00

Text übernehmen

Antworten
Vielen Dank,
Der Code war eine sehr gute Hilfe

Mw1986
Member
 

Eintragen seit: 26 Jun 2016
Herkunft:  
Berichte: 13
Status:  Offline
 Geschrieben: 28 Jun 2016 13:36

Text übernehmen

Antworten
Hallo in der Runde,

ich verzweifel gerade an dem Code. Arbeite mit AC XI Pro. Bin relativ neu. Die Zahl ist eine Summe, die umgewandelt werden soll.

Es gibt ja zwei Möglichkeiten: Entweder über Aktionen oder über Berechnung. Aber mit beiden komme ich nicht weiter.

Besten Dank für die Hilfe im Voraus.

Gruß
Mw

armine
Administrator
 

Eintragen seit: 15 Mai 2009
Herkunft:  
Berichte: 2343
Status:  Offline
 Geschrieben: 29 Jun 2016 08:13

Text übernehmen

Antworten
Hallo Mw,

hier ist die Umsetzung für Acrobat.

vg armine

Anlage: Zahl_in_Worten.pdf (51 Mal aufgenommen)

Mw1986
Member
 

Eintragen seit: 26 Jun 2016
Herkunft:  
Berichte: 13
Status:  Offline
 Geschrieben: 29 Jun 2016 09:11

Text übernehmen

Antworten
Vielen Dank. Java ist bei mir leider noch eine Baustelle, die ich in den nächsten Wochen angehen muss.

armine
Administrator
 

Eintragen seit: 15 Mai 2009
Herkunft:  
Berichte: 2343
Status:  Offline
 Geschrieben: 29 Jun 2016 09:15

Text übernehmen

Antworten
Damit du dich auf der Baustelle nicht verläufst: Du sollst den Wegweiser "JavaScript" nicht aus dem Auge lassen.


 Uhrzeit 06:12





Powered by WowBB 1.7 - Copyright © 2003-2006 Aycan Gulez
Seite erstellt in 0.0909 Sekunden (25% DB + 75% PHP). 15 verarbeitete Abfragen.