Lengte tekst berekenen

Status
Niet open voor verdere reacties.

JLDesign

Gebruiker
Lid geworden
15 nov 2011
Berichten
34
Met onderstaand script bereken ik eerst de hoogte en de breedte van de tekst "Voorbeeldtekst Lengte" in px.
Met deze afmetingen bereken ik dan de lengte in milimeter naargelang de hoogte die gekozen wordt in het vervolgkeuzelijstje.
De hoogte van de eerste berekening in px is echter niet correct.
De hoogte die je krijgt is deze van de blauwe of zwarte achtergrond wanneer je de tekst selecteert en niet van de tekst zelf.
Bijgevolg klopt de berekening van de lengte niet.
Iemand een idee hoe ik de hoogte krijg van de tekst zelf, of is dit niet mogelijk?
[JS]
function getAfm() {
var br=document.getElementById('tekst2').offsetWidth;
document.getElementById("lengte").value = br;
var hg=(document.getElementById('tekst2').offsetHeight);
document.getElementById("hoogte").value = hg;
var hmm;
var h = document.getElementById('Hoogte1').value;
if (h == "Hoogte: 15mm") { hmm = (15.00).toFixed(0) ;}
if (h == "Hoogte: 20mm") { hmm = (20.00).toFixed(0) ;}
var lg=hmm/hg;
lg=lg*br;
document.order.hoogtemm.value = lg.toFixed(0);
}
[/JS]
HTML:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">

<html>
<head>
<title>Untitled</title>
<SCRIPT SRC="Test.js"></SCRIPT>
</head>
<body>
<FORM NAME="order">
<div id="artikel4">
<label for="Hoogte1">Letterhoogte : </label>
<select name="ADDITIONALINFO6" id="Hoogte1" onchange="getAfm()">
										<option value="kies" selected="selected" style="color:red">Kies een hoogte</option>
										<option value="Hoogte: 15mm">15 mm</option>
										<option value="Hoogte: 20mm">20 mm</option>
</select><br />

<input type="text" id="lengte" name="lengte" value="">lengte in px<br />
<input type="text" id="hoogte" name="hoogte" value="">hoogte in px<br />
<input type="text" id="hoogtemm" name="hoogtemm" value="">lengte in mm volgens de gekozen hoogte in mm<br />

<div class="voorbeeld2"><p><b id="tekst2" style="font-size:20pt; font-family:Arial">Voorbeeldtekst Lengte</b></p></div>
</FORM>
</body>
</html>
 
Ah, typografie :D


Neem eerst eens hier een kijkje. Nu, een tweede iets wat je mee moet nemen in je berekening is dat verschillende browsers verschillend werken qua renderen en selecties niet hetzelfde zijn; zie eens dit voorbeeldje van de helpmij frontpage in Firefox en IE: ffieselection.png. Zoals je ziet is FF wat hoger (en, dat is niet zo duidelijk in het plaatje maargoed, breder) dan IE.

Misschien kan je hier wat mee (onder het kopje 'pt'). Ik heb verder weinig ervaring met typografie, maar volgens mij is dit een beetje de oplossing.



:thumb:
 
Laatst bewerkt:
Als ik zo wat bij websites kijk waar ook afmetingen van tekst berekend worden zie ik dat deze allemaal php gebruiken.
De voorbeeldtekst die je te zien krijgt is ook geen tekst meer maar een image denk ik.
Ondertussen ook ergens gelezen dat je tekst niet kan omzetten naar een image met javascript.
Ik zal me dus moeten verdiepen in php.
ik heb al enkele codes gevonden in php maar het wil nog niet echt lukken zoals ik het wil.
nog wat verder zoeken dus.
 
Ondertussen ook ergens gelezen dat je tekst niet kan omzetten naar een image met javascript.

Dat is... deels waar. Met Javascript en de *recente* vernieuwingen op het HTML vlak, kan je nu mooi via het canvas-element plaatjes bouwen via Javascript! Text is ook geen probleem. Wat wel een probleem is dat niet alle browsers (correctie: niet iedereen de laatste versie van een browser gebruikt) deze al ondersteunen, en dat is vervelend als je een website maakt die overal moet werken!

PHP daarentegen werkt wel altijd, dus dat is waarschijnlijk de beste richting om op te gaan. Mocht je tegen problemen oplopen, er is een PHP subforum hier op Helpmij!
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan