hm.
Also ich ärgere mich nicht mehr mit so Sachen herum. Ich baue alle Seiten in einer bestimmten Größe auf, die mir gefällt. Dann berechne ich einen Faktor und lasse die Seite danach aufbauen.
https://www.b4x.com/android/forum/threads/werte-im-designer-auslesen.105100/#post-658747 . In den Link habe ich gefragt, wie ich denn diese Routine (in VB für PC habe ich die mal entwickelt) hier umsetzen kann.
OK. Die ist für den Bildschirm. Aber ich denke man kann sie Problemlos für ALLE Arten von Ausgaben umschreiben. Da die Logik immer die selbe ist. Wenn du diese Routine in deine Bildschirm-Anzeige einbringst, dann bist du vor jeder Auflösung sicher.
Mann baut die Seite auf. Dieser Faktor ist immer 1. Nun fragt man die Größe der Ausgabe an. Bei ein Display halt wie viele Pixel das Teil kann. Bei einen Ausdruck das selbe.
Nun den Faktor (Das Verhältnis Design zu Ausdruck) errechnen, und ALLES = Höhe / Breite / Schriftgrösse etc. mit den Faktor mal nehmen.
Bei Schriften gibt es nur 2 Dinge zu beachten.
1. ) Man muss Truetype-Schriften nehmen, also skalierbare Schriften.
2.) Man muss die Neue Schriftgröße mit INTEGEN berechnen. Also z.b. alte_Schriftgrösse = 12 // Neue_schriftgrösse = int(alte_schriftgrösse * faktor)
Das ist dann zwar mathematisch nicht 100 % Design skaliert, aber viele Systeme mögen keine Schriftgrösse mit kommastelle.
Was nun deinen Ausdruck angeht. Erstelle eine Temporäre Druck-Datei (wie auch immer) , frag oder lege die Seitengrösse fest, berechne mit obriger Lösung die richtigen Daten und das war es.
Bei einen Ausdruck in VB brauche ich folgende Werte dafür.
1.) Standart-Zeilenhöhe = Bekomme ich wenn ich die Pixel abfrage die die vorher berechnete Font an Höhe braucht. = zh
2.) Y = Y- position des 1. Pixel das gedruckt werden soll. (bedruckbare Länge des Blattes = max-y)
3.) x = X - Position des 1. Pixel das gedruckt werden soll. (bedruckbare Breite des Blattes = max-x)
4.) Bei rechtsbündigen Druck muss ich vorher die Textbreite in Pixel abfragen und von Standart-x abziehen.
Ich denke das man das in B4* genauso macht. Danach übergibt man die Seite an das Ausgabe-Modul. Wobei das Ausgabe-modul der Druckertreiber ist, oder der PDF-Creator. Ich habe z.b. auf meine PAD für Canon extra ein Wlan-Druckertreiber (via APP-Store) installieren müssen, damit mein Tablett überhaupt mich drucken lässt.
Und ich kann mir bei besten Willen nicht vorstellen, das das andere anders ist. Sonst musst du ja wie zu DOS-Zeiten (das ist vor Windows) für jeden Drucker ein eigene Ansteuerung schreiben. Mit anderen Worten, such ein "Ausdruck-Seiten-Beschreibungscodierung". Die MUSS es geben. Selbst für so ein zickiges Fehlerhafte System wie I-OS.
Pucki ist froh das, das Ei-fon 3gs + sein Ei-pad 1 seine letzten Teile von den Eierei ist.
?
Wichtiger Hinweis : Um ein Absturz zu vermeiden, prüfe ob das Ausgabe-Objekt eine gewisse Mindestgröße kann. Sonst kommt noch einer auf die Idee und druckt eine a4-Seite auf einen Etikettendrucker. Beim PC ist die Mindestgröße der Bildschirmausgabe 640 * 480. Und die kleinste Schriftgrösse muss 6 sein. Ansonsten fange ich die Skalierung ab.
Gruß
Pucki
ps.: Ich hoffe ich konnte dir mit mein Vortrag ein paar Anregungen geben.