poniedziałek, 25 stycznia 2010

Tapestry 4 Row Number

in java file
    @Component(type = "contrib:TableView", id = "tableView")
    public abstract TableView getTableWyniki();

    @Component(type = "contrib:TablePages", id = "tablePages")
    public abstract TablePages getTablePages();

    @Component(type = "contrib:TableRows", id = "tableRows")
    public abstract TableRows getTableRows();

    public int getRowNo(){
      return (getTablePages().getCurrentPage() - 1) *
      getTableWyniki().getPageSize()
      + getTableRows().getTableIndex() + 1;
    }

 

in html file
<table jwcid="tableView"
    source="ognl:users"
    columns="Row number, login">
    
    <tr>
        <td>
            <span jwcid="tablePages" /> 
        </td>
    </tr>
    
    <tr>
     <span jwcid="@contrib:TableColumns" />
    </tr>
   
   <tr jwcid="tableRows" >
       <td >
      <span jwcid="@Insert" value="ognl:rowNo" />
     </td>
     <td >
       <span jwcid="@Insert" value="ognl:components.tableRows.tableRow.login" />
     </td>
   </tr>
        
</table>

piątek, 22 stycznia 2010

Polskie imininy w kalendarzu Google

W celu dołączenia polskich imienin do swego kalendarza Google, wystarczy zaimportować do wybranego kalendarza plik z imieninami w formacie csv lub iCal (ics).
Polecam wcześniej utworzenie nowego kalendarza (np o nazwie imieniny) i zaimportowanie pliku właśnie do niego, na wypadek, gdybyśmy nie chcieli później oglądać tych imienin:)


Pobierz plik: imieniny.ics

czwartek, 21 stycznia 2010

piątek, 15 stycznia 2010

Generator i walidator numeru dowodu osobistego

Ostatnio potrzebowałem w pracy wprowadzić kilka danych testowych, ale aplikacja do wprowadzania tych danych wymagała m.in. wprowadzenia poprawnego numeru dowodu osobistego.
W dowodach osobistych cyfra kontrolna, to pierwsza cyfra w numerze dowodu (źródło), nie jak to się spodziewałem, że ostatnia.
Poniżej kod dwóch metod, do wygenerowania oraz do sprawdzenia numeru dowodu osobistego.

Zobacz jak to działa.

String generateDO(){
String seria="", numer="";
Random random = new Random(); 
int suma=0;
int waga[]={7,3,1,7,3};

for(int i=0;i<3;i++){
seria+=(char) (random.nextInt('Z'-'A')+'A');
suma+=waga[i]*(seria.charAt(i)-'A'+10);
}
for(int i=0;i<5;i++){
numer+=(char)(random.nextInt('9'-'0')+'0');
suma+=waga[i]*(numer.charAt(i)-'0');
}
return seria+suma%10+numer;
}


public boolean validate(String numerDO){
int waga[]={7,3,1,0,7,3,1,7,3};

 if(numerDO==null || numerDO.length()!=9)
 return false;
 int suma=0;
 for(int i=0;i<9;i++){
  if(Character.isLetter(numerDO.charAt(i)) && i<3){
 suma+=waga[i]*(numerDO.charAt(i)-'A'+10);
}else if(Character.isDigit(numerDO.charAt(i)) &&i>=3){
suma+=waga[i]*(numerDO.charAt(i)-'0');
}else return false;
}

if(((suma%10)+'0')==numerDO.charAt(3))
return true;
return false;
}

czwartek, 7 stycznia 2010

NIP IBAN GUID REGON PESEL ROT13 generators

Generators

NIP
IBAN
GUID
REGON
PESEL
Converter ROT13

source: http://bogus.ovh.org/generatory/

Polskie czcionki FOP

Polskie czcionki w dokumentach PDF generowanych przez aplikacjie Java z użyciem Apache FOP

Czynności do wykonania
1. Generacja metryk
2. Ustawienie konfiguracji czcionek
3. Załadowanie konfiguracji czcionek
4. Ustawienie w szablonie wartości family-font nazwą czcionki, dla której wygenerowano metryki

Realizacja:
1. W katalogu głownym FOPa wykonujemy przykładowe polecenia, w celu wygenerowania metryk dla czcionki Arial oraz jej odmian (pogrubiona, pochylona, itp)

java -cp build\fop.jar;lib\avalon-framework.jar;lib\commons-logging-1.0.4.jar;lib\commons-io-1.3.1.jar;lib\xmlgraphics-commons-1.3.1.jar org.apache.fop.fonts.apps.TTFReader C:\WINDOWS\Fonts\arial.TTF arial.xml

java -cp build\fop.jar;lib\avalon-framework.jar;lib\commons-logging-1.0.4.jar;lib\commons-io-1.3.1.jar;lib\xmlgraphics-commons-1.3.1.jar org.apache.fop.fonts.apps.TTFReader C:\WINDOWS\Fonts\ARIALBD.TTF ARIALBD.xml

java -cp build\fop.jar;lib\avalon-framework.jar;lib\commons-logging-1.0.4.jar;lib\commons-io-1.3.1.jar;lib\xmlgraphics-commons-1.3.1.jar org.apache.fop.fonts.apps.TTFReader C:\WINDOWS\Fonts\ARIALBI.TTF ARIALBI.xml

java -cp build\fop.jar;lib\avalon-framework.jar;lib\commons-logging-1.0.4.jar;lib\commons-io-1.3.1.jar;lib\xmlgraphics-commons-1.3.1.jar org.apache.fop.fonts.apps.TTFReader C:\WINDOWS\Fonts\ARIALI.TTF ARIALI.xml

 2. Utworzenie przykładowego pliku zkonfuguracją czcnioek (fonts.xsl)
 <?xml version="1.0"?>
<fop version="1.0">
  <base>.</base>
  <source-resolution>72</source-resolution>
  <target-resolution>72</target-resolution>
  <default-page-settings height="297mm" width="210mm"/>
  <renderers>

  <renderer mime="application/pdf">
  <filterList>
  <value>flate</value>
  </filterList>
  <fonts>

  <font metrics-url="C:/Documents and Settings/pkarpik/Pulpit/fop-0.95/arial.xml" kerning="yes" embed-url="C:/WINDOWS/Fonts/arial.TTF">
  <font-triplet name="arial" style="normal" weight="normal"/>
  </font>
 
  <font metrics-url="C:/Documents and Settings/pkarpik/Pulpit/fop-0.95/ARIALBD.xml" kerning="yes" embed-url="C:/WINDOWS/Fonts/ARIALBD.TTF">
  <font-triplet name="arial" style="normal" weight="bold"/>
  </font>
 
  <font metrics-url="C:/Documents and Settings/pkarpik/Pulpit/fop-0.95/ARIALBI.xml" kerning="yes" embed-url="C:/WINDOWS/Fonts/ARIALBI.TTF">
  <font-triplet name="arial" style="italic" weight="bold"/>
  </font>
 
  <font metrics-url="C:/Documents and Settings/pkarpik/Pulpit/fop-0.95/ARIALI.xml" kerning="yes" embed-url="C:/WINDOWS/Fonts/ARIALI.TTF">
  <font-triplet name="arial" style="italic" weight="normal"/>
  </font>
 
  </fonts>
  </renderer>

  <renderer mime="application/postscript">
  </renderer>

  <renderer mime="application/vnd.hp-PCL">
  </renderer>

  <renderer mime="image/svg+xml">
  <format type="paginated"/>
  <link value="true"/>
  <strokeText value="false"/>
  </renderer>

  <renderer mime="application/awt">
  </renderer>

  <renderer mime="image/png">
  </renderer>

  <renderer mime="image/tiff">
  </renderer>

  <renderer mime="text/xml">
  </renderer>

  <renderer mime="text/plain">
  <pageSize columns="80"/>
  </renderer>
  </renderers>
</fop>


3. Załadowanie konfiguracji czcionek
FopFactory fopFactory = FopFactory.newInstance();
DefaultConfigurationBuilder cfgBuilder = new DefaultConfigurationBuilder();
File file = new File("C:/Documents and Settings/pkarpik/workspace/Fop/src/fop/tutorial/fon.xsl");
Configuration cfg = cfgBuilder.buildFromFile(file);
fopFactory.setUserConfig(cfg);



4. Ustawienie w szablonie wartości family-font nazwą czcionki, dla której wygenerowano metryki
 <fo:block font-family="arial"></fo:block>


Źródła:
http://xmlgraphics.apache.org/fop/0.94/fonts.html 
http://blog.dosiek.pl/?p=31
http://old.nabble.com/Embed-Fonts-in-PDF-using-Java-td26112969.html