Skip to content
GitLab
Menu
Projects
Groups
Snippets
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Sign in / Register
Toggle navigation
Menu
Open sidebar
魔法少女赵志辉
ap2021a-project
Commits
1bc7f694
Commit
1bc7f694
authored
Oct 13, 2021
by
魔法少女赵志辉
🍊
Browse files
Update document for project2-document_previewer
parent
d2849832
Changes
1
Hide whitespace changes
Inline
Side-by-side
project2/project2-document_previewer.tex
0 → 100644
View file @
1bc7f694
\documentclass
{
dreamClass
}
\def\CC
{
{
C
\nolinebreak
[4]
\hspace
{
-.05em
}
\raisebox
{
.4ex
}{
\small\bf
++
}}
}
\title
{
\vspace
{
-50pt
}
\textbf
{
\Huge
Project2
}
\\
\textbf
{
\huge
文档预览器
}
\\
\small
Version 1.0.0
}
\author
{
刘添翼
\thanks
{
\href
{
mailto:tyi.liu@outlook.com
}{
tyi.liu@outlook.com
}}}
\affil
{
计算机科学与技术系,南京大学
}
\date
{
\today
}
\begin{document}
\maketitle
\thispagestyle
{
empty
}
\section
{
最后期限
}
Project2的最后期限是
\textbf
{
北京时间2021年11月14日23时59分
}
。
在此之前,每位同学需要提交课程项目的源码、可执行文件和项目报告到Github Classroom的对应于Project2的assignment中去。
\section
{
概述
}
我们已经实现了一个Markdown的文档预览器!
所以,让我们为预览器加入更多的功能吧!
\section
{
原则
}
预览器必须是从第一行代码开始写成的,符合面向对象和泛型程序设计范式的,
\CC
{}
程序。
推荐使用第三方的
\CC
{}
图形库来完成界面的绘制,键盘鼠标事件的捕获和处理等等内容,这样可以集中精力设计和实现预览器的架构。
推荐使用第三方的库来完成zip文件的解压缩和XML文件的读取。
预览器应当基于Project2中已经完成的部分,只在确实有必要的情况下重构已有的代码。
\section
{
技术指标
}
我们凭借直觉,制订了这份技术指标。
本节是Project2的基本要求,其中描述的所有内容,除了显式说明成
\emph
{
可以自由发挥
}
的之外,都需要完成。
\subsection
{
对Microsoft Word文档的支持
}
借助已经存在的开源的
\CC
{}
库,实现对扩展名为.docx的Microsoft Word文档的预览。只需要实现对简单的语法的支持即可。
\begin{problem}
我对Microsoft Word和XML都完全不熟悉,我要怎么办?
\end{problem}
对扩展名为.docx的Microsoft Word文档的良好支持是极端困难的,对扩展名为.doc的的则完全不在本次课程项目的范围之内。互联网上存在一些开源的、用
\CC
{}
写成的、用于解析Microsoft Word文档的库,请在其许可证允许的范围之内加以合理利用。
\subsection
{
对
\LaTeX
{}
文档的支持
}
实现对
\LaTeX
{}
文档的预览。只需要实现对最简单最常用的语法的支持即可。
\begin{problem}
我对Microsoft Word、XML和
\LaTeX
{}
都完全不熟悉,我要怎么办?
\end{problem}
对
\LaTeX
{}
文档的良好支持是不可能的。我们希望各位同学,战略性地尝试一下,支持一些最常见最基本的语法(比如本学期的课程项目的文档中经常用到的那些)即可。不需要支持任何看起来就没办法实现的内容,特别地,不需要支持公式。
当然,对此有浓厚兴趣的同学可以自由发挥。
\section
{
Q
\&
A
}
\begin{problem}
我需要在Project2里实现GUI吗?
\end{problem}
对,至少需要实现一个能够以网页的形式展示HTML的界面。
功能相对完备的图形库大多带有可以渲染和展示HTML网页的设施。请查阅相关的手册然后自行尝试。
FLTK似乎没有;
wxWdigets的用户可以参考
\url
{
https://docs.wxwidgets.org/3.0/classwx
_
web
_
view.html
}
;
Qt的用户可以参考
\url
{
https://doc.qt.io/qt-5/qtwebenginewidgets-module.html
}
。
\begin{problem}
我应该使用哪个图形库?
\end{problem}
原则上任何一个都可以。实际一点的话,考虑到这个项目的现实情况,一个相对功能完备的图形库会比较合适。
具体而言,有良好的HTML渲染引擎,有文件管理相关的设施,有内置的XML解析器和文本编辑器的会比较合适。
\end{document}
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
.
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment