|
I am writing to a file coordinates of texts using PathIteratorsaved as SVG format i defined the Font attributes using AttributedString and TextLayout. It is saving to the file and working properly, but it is just writing as a single line of text where is my target is multiple lines of text, i began using LineBreakMeasurer, but some text is removed plus i got single line of text only, where i face the problem that , How to determine the width to get multiple lines of text ? i tried to figure out from this example where is drawing multiple lines of text but i am using getBounds().getWidth() of TextLayout object the code i tried
public class writeFontPathsToFileAsSVG {
private AttributedString text;
private LineBreakMeasurer lineMeasurer;
private int paragraphStart;
private int paragraphEnd;
private static final Hashtable map = new Hashtable();
static {
map.put(TextAttribute.FAMILY, "Arial");
map.put(TextAttribute.SIZE, new Float(25.0));
}
public writeFontPathsToFileAsSVG(){
this.text = new AttributedString( "Salam Marhaba Ahlan Wa Sahlan "
+"Salam Marhaba Ahlan Wa Sahlan"
+"Salam Marhaba Ahlan Wa Sahlan",map);
}
public static void main(String[] args) throws Exception {
writeFontPathsToFileAsSVG getFiel=new writeFontPathsToFileAsSVG();
getFiel.getFontFileAsSVG(new FileWriter(C:\\saveTo.svg"));
}
Shape shape ;
public void getFontFileAsSVG(FileWriter f) throws IOException{
AttributedCharacterIterator attributedChar = text.getIterator() ;
paragraphStart = attributedChar.getBeginIndex();
paragraphEnd = attributedChar.getEndIndex();
FontRenderContext fontRenderContext = new FontRenderContext(null, false, false);
lineMeasurer = new LineBreakMeasurer(attributedChar,fontRenderContext);
TextLayout layout = new TextLayout(text.getIterator(), fontRenderContext);
//To get the Text fits the art-board
double w=layout.getBounds().getWidth();
double h=layout.getBounds().getHeight();
double x=layout.getBounds().getX();
double y=layout.getBounds().getY();
//To get a specific width to go to next line
float formatWidth = (float) w + 250 ;
float drawPosY = 0;
lineMeasurer.setPosition(paragraphEnd);
float drawPosX = 0;
while (lineMeasurer.getPosition() < paragraphEnd) {
layout = lineMeasurer.nextLayout((float) w);
y += layout.getAscent();
if (layout.isLeftToRight()) {
x = 0;
} else {
x = w - layout.getAdvance();
}
y += layout.getDescent() + layout.getLeading();
}
shape = layout.getOutline(null);
PathIterator pi = shape.getPathIterator(null);
PrintWriter out = new PrintWriter(f);
out.println("<?xml version=\"1.0\" standalone=\"no\"?>\n"
+ "<svg xmlns=\"http://www.w3.org/2000/svg\" preserveAspectRatio=\"none\" " +"\n"
+ " width=\""+w+"\" height=\""+h+"\""
+ " viewBox=\""+x+" "+y+" "+w+" "+h+ "\" >" );
out.println("<path d=\"");
String temp=new String();
while (pi.isDone() == false) {
temp+=getCoordinates(pi);
pi.next();
}
out.println(temp);
out.format("\"/>"+"\n"+"</svg>");
out.close();
f.close();
System.out.println("Data added to the File successfully");
}
public String getCoordinates(PathIterator pi) {
String temp=new String();
double[] coor = new double[6];
int type = pi.currentSegment(coor);
switch (type) {
case PathIterator.SEG_MOVETO:
temp="\n\n"+" M " + coor[0] + ", " + coor[1];
break;
case PathIterator.SEG_LINETO:
temp+="\n\n"+" L " + coor[0] + ", " + coor[1];
break;
case PathIterator.SEG_QUADTO:
temp+=" Q " + coor[0] + ", " + coor[1] + " "
+ coor[2] + ", " + coor[3];
break;
case PathIterator.SEG_CUBICTO:
temp+=" C " + coor[0] + ", " + coor[1] + " "
+ coor[2] + ", " + coor[3] + " " + coor[4] + ", " + coor[5];
break;
case PathIterator.SEG_CLOSE:
temp+=" Z";
break;
default:
break;
}
return temp;
}
}
|
|
|
|
|
Hi guys,
I'm working on inventory management system. I'm using java and MySQL database.
The requirement is that user should be able to view the past records of the inventory.
eq. how many products are there at a previous date or a month before.
In short I want to get the state of the inventory at the previous date.
Can you please provide me some guidelines to achieve this.
Your response is highly valuable for me.
Thanks!
|
|
|
|
|
You will need to write some SQL commands to extract the records from the database.
|
|
|
|
|
Dear all
First I am very happy to be a member in this java society.
I am a java programmer and master student. I will do research about code complexity and I need a help from java lovers :x;;).
I made a survey on this website: https://az1.qualtrics.com/SE/?SID=SV_cUv7h4go2sJ8HRz&Preview=Survey&BrandID=qtrial2014
and on this survey I need yours help to rank 15 programs written in java source code. The ranking will be from 1 to 15 where 1 is for the simplest code and 2 for the next simple code and so on until number 15 is the most complex code.
Many thanks in advance.
Regards@};-
|
|
|
|
|
|
I read it. please can you told me where I can post it?
I need experts for this work
|
|
|
|
|
|
many thanks for your replay I will try
|
|
|
|
|
S'il vous plait j'aimerai bien avoir votre dans mon projet qui parle des réseaux peer to peer , j'aimeria bien savoir ce que je puisse faire comme application
|
|
|
|
|
This is an English speaking forum. Please rephrase your question.
|
|
|
|
|
Steps
1. Research real peer to peer protocols
2. Research using a server as an alternative (acting as a proxy)
3. Verify choosing one over the other
4. Learn how to use TCP in java
5. Implement 1/2 using 4 in java.
6. Create an API that is exposes 5 in such a way that it is useful to the real goal of your application.
7. Use 6 in your application.
|
|
|
|
|
Hi programmers,
I'm working on a Java project that has a graphical interface and do some other stuffs, as serial/network communication, calculations, etc.
In your experience, what is the right way to start? Start from the GUI and then program all the functions, or create all the backgrounds method and classes and then program the GUI?
Another issue: you normally prefer to make some variables public or to pass them all as parameters? I'm a bit confused, expecially for Listeners.
Thanks,
Francesco
|
|
|
|
|
If you follow one of the modern patterns (MVC, MVVM etc) your GUI should be separated from your business logic such that you can test the latter even before the GUI is designed. So work on the business side of things first, it's much easier to add or modify the GUI than to rework your classes to match the display.
It's generally not good practice to have public variables, as such. Pass them as parameters or use setters and getters[^].
|
|
|
|
|
Dear Richard,
Thanks for your reply, I'll study about the two patterns you suggested me.
For public variables, I show my problem:
I want to write data on RS232 port, wait a reply, read data arrived and elaborate them. I create a SerialPort object using RxTx libraries and I setted a Listener to it. In my main class, a method write the data on the serial port and then wait on a Condition variable. The listener have to notify to the waiting method the arrival of the data. The two methods are on completely different classes, so I thought to make the condition variable global. Unfortunately, at now the program doesn't work. What shall be the right way to do solve kind of problem?
Francesco
|
|
|
|
|
Francesco Fraccaroli wrote: Unfortunately, at now the program doesn't work. What shall be the right way to do solve kind of problem? Sorry, but that information does not help us to understand what is happening. I suggest you open a new question, and show the part of your program that does not work, and explain exactly what errors you are seeing. Don't forget to add <pre> tags (use the code button above the edit window) around your code so it is readable like:
|
|
|
|
|
Hie everyone, can someone help me on how i can open a pdf file using java. Thank you in advance.
MilwardKadzitaye
|
|
|
|
|
|
This is only for a specific file ??
|
|
|
|
|
I want one enter data in two table from one html form .
Ex. 1 student have multiple mobile no.
please provide me solution.
Praveen Kumar
Software Developer (Java)
|
|
|
|
|
|
praveenxyz wrote: please provide me solution.
1. Learn java
2. Learn how to use spring
3. Put the above together to create code
4. Test the code to insure it works.
|
|
|
|
|
anyone can help me here please :
Handling Biometric Fingerprint Attendance Device by using Socket (JAVA) Is that possible?! I try with Socket, BUT it does not executed with me!
Me Code is:
import java.io.IOException;
import java.io.ObjectInputStream;
import java.io.ObjectOutputStream;
import java.net.Socket;
import java.net.UnknownHostException;
public class Requester {
Socket requestSocket;
ObjectOutputStream out;
ObjectInputStream in;
String message;
Requester() {
}
void run() throws IOException {
try {
requestSocket = new Socket("192.168.0.19", 4370);
System.out.println("Connected to given host in port 4370");
in = new ObjectInputStream(requestSocket.getInputStream());
String line;
while (true) {
line = in.readLine();
if (line != null) {
System.out.println(line);
}
}
} catch (UnknownHostException unknownHost) {
System.err.println("You are trying to connect to an unknown host!");
} catch (IOException ioException) {
ioException.printStackTrace();
} catch (Exception Exception) {
Exception.printStackTrace();
} finally {
in.close();
requestSocket.close();
}
}
void sendMessage(String msg) {
try {
out.writeObject(msg);
out.flush();
System.out.println("client: " + msg);
} catch (IOException ioException) {
ioException.printStackTrace();
}
}
public static void main(String args[]) throws IOException {
Requester client = new Requester();
client.run();
}
}
f anyone could help me to communicate with the finger print device I will be grateful.
modified 4-Jun-14 3:55am.
|
|
|
|
|
Please refer to point 9 of the forum guidelines above.
Software rusts. Simon Stephenson, ca 1994. So does this signature. me, 2012
|
|
|
|
|
|
What does "it does not executed with me" mean; we cannot guess from this what is going wrong? Have you checked the documentation for the device to make sure your protocol is correct?
|
|
|
|