1.首先,准备几款工具。
2款排版软件,DreamEdit /DreamEdit.rar,FineReader /FineReader_chn.rar
Java电子书制作工具,JBookMaker1.06 /JBookMaker.rar
一个将网页、EXE电子书、.htm文件等保存为TXT的软件,miniKillEBook /miniKillEBook_chn.rar
2.将TXT文件用DreamEdit(有些格式调整用FineReader比较方便)排版好,并按照自己的意愿分割文档。
3.用JBookMaker1.06将整理好的TXT文件做成.jar文件,这里举例为sample.jar
4.下载我整理好的全屏支持图标、封面的制作文档,Java电子书全屏完整制作附件
/触摸屏电子书制作附件.rar
5.用winrar打开sample.jar,解压/META-INF/MANIFEST.MF,其中Manifest是这样的
Manifest-Version: 1.0
MicroEdition-Configuration: CLDC-1.0
MIDlet-Version: 1.06
Created-By: 1.4.2 (Sun Microsystems Inc.)
MIDlet-Vendor: B&H
MicroEdition-Profile: MIDP-1.0
MIDlet-1: sample, , JavaBook
MIDlet-Name: sample
更改上面绿色标记出来的一行为:MIDlet-1: sample,/JBook.png, JavaBook
如果你做的电子书支持密码,则需要在最后面加上此行:MIDlet-DeSCRIPTion: 123456,123456是你的初始密码。
覆盖sample.jar中的原文件,winrar会提示文件更新,并保存。
6.将Java制作附近中的所有文件覆盖sample.jar中的文件,winrar会提示文件更新,并保存。
7.好了,你要的全屏,支持点触,而且有图标和封面的完美的Java电子书就制作好了!
8.制作附件中的JBook.png是图标,Logo.png是图书封面,可以自己更改。png文件可以用photoshop或者acdsee得到。
下面转载一下http://www.sjshu.net/htm_data/2/0510/424.html
支持UMD格式电子书的手机类型!
阅读器(Symbian S60 2.51 版)
支持机型
Nokia 7650 Nokia N-GageQD Nokia 6670
Nokia 3650 Nokia 6600 西门子SX1
Nokia 3660 Nokia 6260 松下X700
Nokia N-Gage Nokia 7610
诺基亚7710 版
以S90 OS为 *** 作系统的手机。包括Nokia7710。
Symbian UIQ V0.9beta版
此版本适用于UIQ2.0及2.1版本,包括了索爱的P80x等系列
PPC版本V1.0
支持机型
适合手机:使用PocketPC 2003 *** 作系统的掌上电脑及智能手机。
(PocketPC 2002版本需要.Net字库支持)
主要设备品牌:
惠普(HP): iPAQ rx3715,iPAQ1717,iPAQ hx4700,…
戴尔(DELL):Axim X50v,Axim X50,…
卡西欧(CASIO):E-200,…
优派(ViewSonic):V36,V35,…
华硕(ASUS):A730,A716,A620,…
联想(Lenovo) :天玑XP218,天玑XP210,天玑XP208,…
阅读器Smartphone版本V1.1
适合手机:多普达515,535,565,575,585神达8390TCL E777摩托罗拉MPX220,MPX200等
阅读器阅读器Java版本1.0
掌上书院KJava(Nokia系列)1.02版
Nokia3155、3155i、6155、6155i、6030、6021、6230、6230i、6101、6102、6822、6235、6235i、6020、7260、7270、6170、3220、6255、5140、6651、6650、7600
掌上书院KJava(motorola系列)A3 版
Moto 系列 大屏幕 (型号:V635,V6,V557,V980,V360,
v975,V80,V600(i),V551,V535,V501,V500,V400,V303,V300
V3,E398,E390,E375,C975,A860,A835)
掌上书院KJava(motorola系列)A1版
Moto 系列 小屏幕 (型号:V280,V270,V235,V176,V878,V872,V690)
掌上书院KJava(汉字motorola系列)M1版
Moto 系列 [带手写笔] (型号:A768(i),A760,A728)
这个地址是UMD格式电子书的下载地址,需要注册一下,是PC端的软件。http://sjshu.net/htm_data/2/0603/8458.html
1、首先,Java打开微店,进入到“我的微店”界面。点击右上角“添加”进入到添加商品界面,这个界面分别是商品图片、商品描述和商品型号。2、我们先来看商品的图片,在这里注意的是,商品图片的第一张会默认为商品的封面和描述的第一张图片,因此,大家在选择图片的时候一定要注意,建议将所有照片上传后再长按拖动调整图片的先后顺序。
3、图片调整完毕后,在商品的详细描述中就会依次浏览图片,但有的会选择在图片之间添加一些文字,我们点击需要添加文字信息的图片,可以进行图片的美化和描述,图片美化由官方做了一些模板供大家选择,图片描述时可以添加想要说明的文字。
4、而有的为了显示微店的美观,也会将一些文字等素材直接做到图片里,那样的话直接上传图片,调整位置就可以了。Java向微信这样添加商品名称。
封面就是图片,用java的类抓取图片即可
package toolimport java.awt.BorderLayout
import java.awt.FlowLayout
import java.awt.event.ActionEvent
import java.awt.event.ActionListener
import java.io.BufferedReader
import java.io.ByteArrayOutputStream
import java.io.File
import java.io.FileOutputStream
import java.io.InputStream
import java.io.InputStreamReader
import java.net.HttpURLConnection
import java.net.URL
import java.util.LinkedList
import java.util.List
import java.util.regex.Matcher
import java.util.regex.Pattern
import javax.swing.ImageIcon
import javax.swing.JButton
import javax.swing.JFrame
import javax.swing.JPanel
import javax.swing.JScrollPane
import javax.swing.JTextField
import javax.swing.JTextPane
import javax.swing.SwingUtilities
import javax.swing.text.Style
import javax.swing.text.StyleConstants
import javax.swing.text.StyleContext
import javax.swing.text.StyledDocument
public class ImageViewer extends JFrame
{
private static final long serialVersionUID = 1L
private static final String DOWNLOADPATH = "download/"
JTextPane textPane = new JTextPane ()
LinkedList<String> initString = new LinkedList<String> ()
LinkedList<String> initStyles = new LinkedList<String> ()
LinkedList<String> path = new LinkedList<String> ()
public ImageViewer ()
{
setTitle ("图片预览下载器 v1.0")
setLayout (new BorderLayout ())
setSize (500, 300)
setLocationRelativeTo (null)
setDefaultCloseOperation (JFrame.EXIT_ON_CLOSE)
}
private void addComponents ()
{
final JTextField urltField = new JTextField ()
JPanel right = new JPanel (new FlowLayout (FlowLayout.RIGHT, 0, 0))
final JButton go = new JButton ("GO")
textPane.setEditable (false)
JScrollPane content = new JScrollPane (textPane)
go.addActionListener (new ActionListener ()
{
@Override
public void actionPerformed ( ActionEvent e )
{
String url = urltField.getText ().trim ()
resolveHTML (url, "utf8", "(?i)\\<img[^\\>]*src[\\=\\s\'\"]+([^\\>\'\"]+)[\'\"]?[^\\>]*\\>")
}
})
JPanel up = new JPanel (new BorderLayout ())
up.add (urltField, BorderLayout.CENTER)
right.add (go)
JButton download = new JButton ("DOWNLOAD")
download.addActionListener (new ActionListener ()
{
@Override
public void actionPerformed ( ActionEvent e )
{
downloadImages ()
}
})
right.add (download)
up.add (right, BorderLayout.EAST)
add (up, BorderLayout.NORTH)
add (content, BorderLayout.CENTER)
}
private void downloadImages ()
{
File fp = new File (DOWNLOADPATH)
if (!fp.exists ())
{
fp.mkdir ()
}
for ( int i = 0 i < path.size () i++ )
{
try
{
String p = path.get (i)
URL url = new URL (p)
HttpURLConnection huc = (HttpURLConnection) url.openConnection ()
huc.setRequestMethod ("GET")
huc.setConnectTimeout (5 * 1000)
InputStream is = huc.getInputStream ()
ByteArrayOutputStream baos = new ByteArrayOutputStream ()
byte[] buffer = new byte[1024]
int len = -1
while (( len = is.read (buffer) ) != -1)
{
baos.write (buffer, 0, len)
}
baos.flush ()
baos.close ()
is.close ()
huc.disconnect ()
byte[] data = baos.toByteArray ()
String name = p.substring (p.lastIndexOf ("/") + 1, p.length ())
name = name.contains (".") ? name : name + ".jpg"
FileOutputStream fos = new FileOutputStream (new File (DOWNLOADPATH + name))
fos.write (data)
fos.flush ()
fos.close ()
}
catch (Exception e)
{
continue
}
}
}
private void loadImages ( List<String> initString, List<String> initStyles, List<String> url )
{
try
{
StyledDocument doc = textPane.getStyledDocument ()
doc.remove (0, doc.getLength ())
addStylesToDocument (doc, url, initStyles)
for ( int i = 0 i < initString.size () i++ )
{
doc.insertString (doc.getLength (), initString.get (i), doc.getStyle (initStyles.get (i)))
}
}
catch (Exception e)
{}
}
protected void addStylesToDocument ( StyledDocument doc, List<String> url, List<String> initStyles )
{
Style def = StyleContext.getDefaultStyleContext ().getStyle (StyleContext.DEFAULT_STYLE)
for ( int i = 0 i < initStyles.size () i++ )
{
Style s = doc.addStyle (initStyles.get (i), def)
StyleConstants.setAlignment (s, StyleConstants.ALIGN_CENTER)
ImageIcon icon = createImageIcon (url.get (i))
if (icon != null)
{
StyleConstants.setIcon (s, icon)
}
}
}
protected static ImageIcon createImageIcon ( String url )
{
URL imgURL = null
try
{
imgURL = new URL (url)
if (imgURL != null)
{
return new ImageIcon (imgURL)
}
}
catch (Exception e)
{}
return null
}
private void resolveHTML ( String spec, String charsetName, String regex )
{
try
{
URL url = new URL (spec)
HttpURLConnection huc = (HttpURLConnection) url.openConnection ()
InputStreamReader isr = new InputStreamReader (huc.getInputStream (), charsetName)
BufferedReader br = new BufferedReader (isr)
StringBuilder builder = new StringBuilder ()
String line = null
while (null != ( line = br.readLine () ))
{
builder.append (line)
}
br.close ()
isr.close ()
huc.disconnect ()
String bs = builder.toString ()
Pattern pattern = Pattern.compile (regex)
Matcher matcher = pattern.matcher (bs)
initString.clear ()
initStyles.clear ()
path.clear ()
while (matcher.find ())
{
String p = matcher.group (1)
initString.add (" ")
initStyles.add (p)
path.add (p)
}
loadImages (initString, initStyles, path)
}
catch (Exception e)
{
return
}
}
public static void main ( String[] args )
{
SwingUtilities.invokeLater (new Runnable ()
{
@Override
public void run ()
{
ImageViewer tester = new ImageViewer ()
tester.addComponents ()
tester.setVisible (true)
}
})
}
}
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)