Nwlapcug.com


Come leggere il testo dal file SWF in Java

Per impostazione predefinita, Java è in grado di lavorare con i file Flash SWF. I file SWF sono file Adobe Flash che contengono multimediale, grafica vettoriale e ActionScript. Tuttavia, un pacchetto di funzioni è disponibile sul Web che estende la funzionalità di Java e consente di lavorare con i file Flash. Ad esempio, può aiutare si analizzare il file SWF e leggere tutto il testo. È quindi possibile utilizzare il testo nel tuo altre funzioni di Java. Tutto quello che dovete fare è scaricare i file di origine e link al loro nell'applicazione Java.

Istruzioni

1

Aprire il browser Web e passare a Softpedia per scaricare il codice sorgente di JavaSWF2.

2

Fare clic sul pulsante blu "Download" e salvare l'archivio sul disco rigido.

3

Pulsante destro del mouse l'archivio javaswf-CVS-SNAPSHOT-1. zip che appena scaricato e selezionare Estrai qui per estrarne il contenuto nella stessa cartella. Viene creata una cartella denominata javaswf.

4

Creare un nuovo file di testo in un punto qualsiasi sul disco rigido, ReadText.java il nome e premere "Invio".

5

Copiare la cartella com trovata all'interno della cartella javaswf\bin nella cartella contenente il nuovo file di Java.

6

Aprire il file Java in qualsiasi editor di testo.

7

Inserire queste righe per importare le risorse necessarie:

importazione java.io. ;
import java. util.
;
importazione com.anotherbigidea.flash.interfaces. ;
importare com.anotherbigidea.flash.writers.
;
importazione com.anotherbigidea.flash.readers. ;
importare com.anotherbigidea.flash.structs.
;

8

Inserire questo codice per leggere il testo dal file SWF:

public class ExtractText extends SWFTagTypesImpl
{

protected HashMap fontCodes = new HashMap();
public ExtractText( )
{
super( null );
}

public void tagDefineFontInfo (int fontId, String fontName, int flags, int [] codici)

throws IOException
{
fontCodes.put( new Integer(fontId), codes );
}
public SWFVectors tagDefineFont2( int id, int flags, String name, int numGlyphs,
int ascent, int descent, int leading,
int[] codes, int[] advances, Rect[] bounds,
int[] kernCodes1, int[] kernCodes2,
int[] kernAdjustments ) throws IOException
{
fontCodes.put( new Integer(id), (codes!=null) ? codes : new int[0] );
return null;
}
public void tagDefineTextField( int fieldId, String fieldName,
String initialText, Rect boundary, int flags,
AlphaColor textColor, int alignment, int fontId, int fontSize,
int charLimit, int leftMargin, int rightMargin, int indentation,
int lineSpacing )
throws IOException
{
if( initialText != null )
{
System.out.println( initialText );
}
}
public SWFText tagDefineText( int id, Rect bounds, Matrix matrix )
throws IOException
{
return new TextDumper();
}
public SWFText tagDefineText2( int id, Rect bounds, Matrix matrix ) throws IOException
{
return new TextDumper();
}
public class TextDumper implements SWFText
{
protected Integer fontId;
protected boolean firstY = true;
public void font( int fontId, int textHeight )
{
this.fontId = new Integer( fontId );
}
public void setY( int y )
{
if( firstY ) firstY = false;
else System.out.println();
}
public void text( int[] glyphIndices, int[] glyphAdvances )
{
int[] codes = (int[])fontCodes.get( fontId );
if( codes == null )
{
System.out.println( "\n**** COULD NOT FIND FONT INFO FOR TEXT ****\n" );
return;
}
char[] chars = new char[ glyphIndices.length ];
for( int i = 0; i < chars.length; i++ )
{
int index = glyphIndices[i];
if( index >= codes.length ) //System Font ?
{
chars[i] = (char)index;
}
else
{
chars[i] = (char)(codes[index]);
}
}
System.out.print( chars );
}
public void color( Color color ) {}
public void setX( int x ) {}
public void done()
{
System.out.println();
}
}
public static void main( String[] args ) throws IOException
{
FileInputStream in = new FileInputStream( args[0] );
ExtractText extractor = new ExtractText();
TagParser parser = new TagParser( extractor );
SWFReader reader = new SWFReader( parser, in );
reader.readFile();
in.close();
}

}

9

Salvare e chiudere il file Java.

10

Compilare il codice sorgente Java, inserire il file SWF all'interno della stessa cartella ed eseguire il programma Java. Chiederà il nome del file SWF. Digitarla e premere "Invio" per leggere il testo da file SWF.

Consigli & Avvertenze

  • È possibile aggiungere ulteriori funzioni per l'applicazione per utilizzare il testo.