精华内容
下载资源
问答
  • Whatsapp_word_art:通过whatsapp聊天制作图片
  • Word Web App

    2012-05-10 09:27:03
    Microsoft Word Web App 将 Microsoft Word 体验扩展到了 Web 浏览器,这使您可以直接在存储文档的网站上处理文档。其 SharePoint 网站上安装并配置了 Office Web Apps 的组织中的个人可以在 Windows Live 中使用 ...

    Microsoft Word Web App 将 Microsoft Word 体验扩展到了 Web 浏览器,这使您可以直接在存储文档的网站上处理文档。其 SharePoint 网站上安装并配置了 Office Web Apps 的组织中的个人可以在 Windows Live 中使用 Word Web App ;订阅了 Office 365(英文) 服务的专业人员和企业也可以使用 Word Web App。

    有关 Office Web Apps 的详细信息,请参阅 Office Web Apps 入门。
    与 Word 完美结合

    您在 Microsoft Word 中创建了一个文档。您希望将该文档发布到网站上,以便其他人可以阅读或者打印它。如果您在发布之后才发现某人的名字拼错了,那么该如何处理呢?如果能迅速在网站上解决此问题,是不是很棒?Word Web App 可使这种设想得以实现。

    在 Microsoft Word 2010 中,您可以通过将文档保存到 SkyDrive 或 SharePoint 库中来开始使用 Word Web App 。在“文件”选项卡上,单击“保存并发送”,然后单击“保存到 Web”或“保存到 SharePoint”。



     

    现在,您的文档便可供快速查看和打印了,还可在浏览器中对其进行编辑或者在 Word 中将其重新打开。

    注释 文档不需要在 Word 2010 中进行创建即可在 Word Web App 中打开。为获得最佳兼容性,请使用 Office Word 2003 或更高版本,或者使用 Word for Mac 2008 版本 12.2.9 或 Word for Mac 2011。如果您使用的是 Word 2003,请安装最新的 Service Pack,并在您的计算机上将文档保存为 .docx 文件。然后将文档上载到配置了 Office Web Apps 的 SharePoint 网站,或将文档上载到 SkyDrive。
    在浏览器中阅读文档

    当您在 Windows Live 或 SharePoint 中打开文档时,Word Web App 会在浏览器中打开该文档。您在浏览器中所看到的布局和格式设置与您在 Word 的页面视图中打开文档时所见相同。


     注释 如果您没有安装 Microsoft Silverlight 2 或更高版本,Word Web App 将显示一个栏,其中带有安装 Silverlight 的链接。Silverlight 不是必需的,但如果安装了最新版本的 Silverlight,文档显示的速度将更快,并且在高缩放级别下的保真度将更高。

    在“阅读”视图中,您可以逐页阅读文档或移到某特定页。键入您要移到的页码,或使用“上一页”和“下一页”按钮。


    如果您想要近距离查看或者在屏幕上看到页面上的更多内容,请使用“缩放”命令来扩大或缩小页面视图。

    您还可以使用“查找”命令搜索词或短语。搜索结果会在文档中突出显示。



     使用网页时,您可以在文档中选择文本然后复制所选文本,这样便可将所选文本粘贴到其他应用程序中。
    从浏览器打印

    Word Web App 按文档在“阅读”视图中的显示效果进行打印。若要打印文档,请在“阅读”视图中单击“文件”选项卡,然后单击“打印”。

    注释 必须安装 PDF 查看器才能在 Word Web App 中进行打印。如果您尚未安装 PDF 查看器,系统会提示您下载一个。
    在浏览器中编辑

    如果您要对文档进行更改,请单击“在浏览器中编辑”。在“编辑”视图中,您可以添加和删除内容,还可以设置文本格式。“编辑”视图最适合用来编辑内容,而非显示文档。在“编辑”视图中,布局已进行了简化,“编辑”视图中无法显示的项目会显示为占位符。这些占位符可以防止您无意中删除在 Word Web App 中可以显示但无法编辑的文档内容。



     在“编辑”视图中,您可以按正常方式键入文字,也可使用复制/粘贴和撤消/恢复命令。您可以通过应用样式和在“开始”选项卡上看到的所有文本格式设置选项来设置文字格式。

    您还可以添加图片、剪贴画、表格和超链接。剪贴画来自 Office.com 提供的图像集合。转到“插入”选项卡可添加这些内容。

    若要查看所做更改在文档中的显示效果,请单击“文件”选项卡上的“保存”,然后切换回“阅读”视图:在“视图”选项卡上,单击“阅读视图”。
    在 Word 中进行无缝编辑

    在 Word Web App 中编辑最适合快速更改,例如进行更正、插入图片或添加更多文本。如果需要完整的 Word 功能集,请单击“文件”选项卡,然后单击“在 Word 中打开”。

    Word Web App 将直接在 Word 桌面应用程序中打开文档,这样您可以更加高效地工作,例如,如果要更改文档样式、更改 SmartArt 或添加页眉和页脚。在 Word 中单击“保存”时,Word 会将文档保存回 Web 服务器。

    注释 在 Firefox、Internet Explorer (Windows) 和 Safari (Mac) 浏览器中,支持直接从浏览器中将文档在 Word 桌面应用程序中打开。在 Windows 中,您还必须使用 Word 2003 或更高版本才能使用此功能(如果您使用的是 Firefox,还必须使用 Word 2010)。在 Mac 上,此功能需要 Microsoft Word for Mac 2008 版本 12.2.9 或 Word for Mac 2011。

     

    原文地址:http://office.microsoft.com/zh-cn/web-apps-help/HA010378341.aspx

     

    展开全文
  • Wordclock Web App

    2020-12-31 22:24:22
    <div><p>I did some polishing-up of the App. It now consists of two tabs: one for control, one for the colours. Now fits better in the Wordclock structure of files. <p>Have fun!</p><p>该提问来源于开源...
  • 词网 该项目是使用版本8.3.6生成的。 开发服务器 为开发服务器运行ng serve 。... 如果您更改任何源文件,该应用程序将自动重新加载。 代码脚手架 运行ng generate component component-name生成一个新的组件。...
  • App spec: word processor

    2020-12-30 12:37:40
    What we need is a nice simple word processor. <p>I’m not sure how to do it though – WebODF doesn’t seem to be advanced enough currently. And Etherpad is based on Node.js.</p><p>该提问来源于开源...
  • <div><p>I can run my app on Office Desktop, but when I upload my manifest in Office Web Word I cannot see my app reflected in the word web app ribbon. <p>Any idea why? I am using this initializer. <p>...
  • word_guesser_app-源码

    2021-03-13 23:23:20
    Word Guesser应用 这个程序是WGwebserver的前端 附加信息 Web服务器: : Chrome扩展程序: : Flutter应用程序: : 历史: 作为Android应用程序的第二版: : 拳头版本作为终端程序: :
  • PDF转Word怎么弄?每天都有成千上万的人在百度上问这个问题。一般人肯定会去找软件来处理,...接下里进入正题不一般的人一般会利用OCR文字识别这个技术来处理PDF转Word这个问题,具备这种功能的APP、微信小程序非常...
    2636b7a19586263e43be66b2ce547d60.png

    PDF转Word怎么弄?每天都有成千上万的人在百度上问这个问题。一般人肯定会去找软件来处理,不一般的人会怎么处理呢?为什么要转成word,无非就是需要修改里面的文本、图片内容,但是还有一个问题,如果这个PDF文件是扫描件的话,就算你用转成Word也还是图片,根本无法满足需求。

    931a66afd7389bc2baa0bc83094cce95.png

    接下里进入正题

    b081f111b4ab4f0a355bfa4d9ee71106.png

    不一般的人一般会利用OCR文字识别这个技术来处理PDF转Word这个问题,具备这种功能的APP、微信小程序非常的多,有收费的也有免费的,我们可以选择免费的福昕扫描王APP来处理,福昕提供多种拍摄模式【拍题】、【拍图取字】、【PPT】等,能够适配不同文档样式。福昕扫描王曾被一加手机、小米手机选为推荐产品,接下来小编就演示一下福昕扫描王该怎么使用。

    7ad9c9e55999bd377f20ff76a5225a6c.png

    如何利用福昕扫描王

    福昕扫描王目前暂时仅支持安卓手机,所以苹果的亲们只能再等待一下咯!直接到手机应用商店搜索“福昕扫描王”或者进入官方网站scanner.pdf365.cn下载安装。

    第一,打开福昕扫描王APP,点击右下角的【拍照】按钮,进入拍摄界面

    第二,任意选择你要【拍摄模式】,快速连续拍摄PDF上所有页面内容

    第三,点击底部【OCR文字识别】按钮批量进行处理,识别完成后直接将文本另存为

    第四,发送到手机或电脑上的office软件新建文档,将文本导入即可

    a6eba132d7f5444a2b433eaa6cf45d5b.png

    当然这样做可能需要多花费一些时间,但是可以节省不少钱。如果你是懒人的话,建议还是继续花钱转换吧,福昕扫描王还是比较适合动手能力强的用户,你是吗?

    办公新技能 巧用福昕扫描王图片转Word

    福昕扫描王将取代扫描仪,OCR文字识别应用办公标配

    展开全文
  • 隐藏office web app打印和在word中打开功能
  • word web app 打开错误

    2014-08-08 15:35:06
    求各位大神指点。...配置后发出现问题:除了Excel能够正常在线打开查看之外,其他如word,ppt,pdf都无法在线查看。 错误如图: [img=https://img-bbs.csdn.net/upload/201408/08/1407483218_113427.jpg][/img]
  • <div><p>Application needs to have a user configurable wake word to have the assistant listen. <p><strong>Acceptance Criteria: - User should be able to leverage one of the pre-determined wake words in ...
  • <p>In particular, while RStudio is triggering the launch of Microsoft Word, the document does not open, instead the OSX Preview app launches with the document, this is quite confusing for students ...
  • 实验环境: 操作系统:Ubuntu Gnome 16.04.2 硬件——tiny4412 android版本——5.0.2 linux kernel版本——3.0.86 ...编写APP 1、编写驱动 用于android的驱动与ubuntu上使用的驱动没有区别,为了简单这里不...

    实验环境:
    操作系统:Ubuntu Gnome 16.04.2
    硬件——tiny4412
    android版本——5.0.2
    linux kernel版本——3.0.86
    androidst stdio版本——3.1

    开发步骤:

    1. 编写驱动
    2. 编写驱动测试程序
    3. 编写jni层代码
    4. 编写APP

    1、编写驱动

    用于android的驱动与ubuntu上使用的驱动没有区别,为了简单这里不注册字符设备,仅注册杂项设备。
    

    word_count_drv.c

    #include <linux/module.h>
    #include <linux/init.h>
    #include <linux/miscdevice.h>
    #include <asm/uaccess.h>
    #include <linux/fs.h>
    
    #define DEVICE_NAME "word_count"
    #define POOL_SIZE 1024
    
    static unsigned char pool[POOL_SIZE];
    static int count_result;
    static int misc_minor = 222;
    
    static int word_count_drv_open(struct inode *inode_p, struct file *file_p);
    static int word_count_drv_release(struct inode *inode_p, struct file *file_p);
    static ssize_t word_count_drv_write(struct file *file_p, const char __user *buf, size_t size, loff_t *loff);
    static ssize_t word_count_drv_read(struct file *file_p, char __user *buf, size_t size, loff_t *loff);
    
    static struct file_operations word_count_fops = {
        .owner = THIS_MODULE,
        .open = word_count_drv_open,
        .release = word_count_drv_release,
        .read = word_count_drv_read,
        .write = word_count_drv_write
    };
    
    static struct miscdevice word_count_misc_dev = {
    //  .minor = misc_minor,
        .name = DEVICE_NAME,
        .fops = &word_count_fops
    };
    
    static _Bool is_letter(char c)
    {
        if(c >= 'a' && c <= 'z')
            return 1;
        else if(c >= 'A' && c <= 'Z')
            return 1;
        return 0;
    }
    
    static int word_count(const char *c)
    {
        int count = 0;
        unsigned int flag = 0;/* the last character is letter*/
        while(*c != '\0')
        {
            if(is_letter(*c) == 1)
            {
                if(flag == 0)
                {
                    count++;
                    flag = 1;
                }
            }
            else
            {
                flag = 0;
            }
            c++;
        }
        return count;
    }
    
    /* miscdevice fops */
    static int word_count_drv_open(struct inode *inode_p, struct file *file_p)
    {
        printk("%s open\n", DEVICE_NAME);
        return 0;
    }
    
    static int word_count_drv_release(struct inode *inode_p, struct file *file_p)
    {
        printk("%s release\n", DEVICE_NAME);
        return 0;
    }
    
    static ssize_t word_count_drv_write(struct file *file_p, const char __user *buf, size_t size, loff_t *loff)
    {
        printk("%s write\n", DEVICE_NAME);
        if(size > POOL_SIZE)
            size = POOL_SIZE - 1;
        copy_from_user(pool, buf, size);
        pool[size] = '\0';
        count_result = word_count(pool);
        printk("word count is %d\n", count_result);
        return size;
    }
    
    static ssize_t word_count_drv_read(struct file *file_p, char __user *buf, size_t size, loff_t *loff)
    {
        printk("%s read\n", DEVICE_NAME);
        copy_to_user(buf, &count_result, sizeof(count_result));
        return sizeof(count_result);
    }
    /* miscdevice fops end */
    
    static int word_count_drv_init(void)
    {
        int ret;
        printk("%s drv init\n", DEVICE_NAME);
        word_count_misc_dev.minor = misc_minor;
        printk("misc minor is %d\n", misc_minor);
        ret = misc_register(&word_count_misc_dev);
        if(ret < 0)
        {
            printk("%s:register misc device failed!err code:%d\n", DEVICE_NAME, ret);   
            return -1;  
        }
        printk("%s init success!\n", DEVICE_NAME);
        return 0;
    }
    
    static void word_count_drv_exit(void)
    {
        printk("%s drv exit\n", DEVICE_NAME);
        misc_deregister(&word_count_misc_dev);
    }
    
    module_init(word_count_drv_init);
    module_exit(word_count_drv_exit);
    module_param(misc_minor, int, S_IRUGO | S_IWUSR);
    MODULE_VERSION("V1.0");
    MODULE_AUTHOR("hokamyuen");
    MODULE_LICENSE("GPL");

    编译出.ko文件后使用ADB传到开发板的/data/local,不能传到根目录,根目录是只读的

    adb push ./word_count_drv.ko /data/local/

    加载驱动,检查是否生成了设备节点,并使用echo简单测试

    root@tiny4412:/ # cd /data/local/                                              
    root@tiny4412:/data/local # insmod word_count_drv.ko
    root@tiny4412:/data/local # ls /dev | grep word_count
    word_count
    root@tiny4412:/data/local # echo 'hello world!' > /dev/word_count
    root@tiny4412:/data/local # dmesg |tail -5
    <6>[   98.623690] binder: 2260:2260 transaction failed 29189, size 108-0
    <4>[  251.407386] word_count open
    <4>[  251.407568] word_count write
    <4>[  251.407644] word count is 2
    <4>[  251.407738] word_count release

    可以看到驱动计算出了单词的数量,证明驱动基本正常运行。

    2. 编写驱动测试程序

    接下来就是编写简单c语言程序再次测试驱动是否正常工作。
    word_count_app.c
    
    #include <stdio.h>
    #include <sys/types.h>
    #include <sys/stat.h>
    #include <fcntl.h>
    #include <unistd.h>
    #include <string.h>
    
    #define DEV_PATH "/dev/word_count"
    
    int main(int argc, char **argv)
    {
        int fd, count;
        printf("word count app\n");
        if(argc != 2)
        {
            printf("usage %s text\n", argv[0]);
        }
        fd = open(DEV_PATH, O_RDWR);
        if(fd < 0)
        {
            printf("open %s failed!\n", DEV_PATH);
            return -1;
        }
        write(fd, argv[1], strlen(argv[1]));
        read(fd, &count, 4);
        printf("word num is %d\n", count);
        close(fd);
        return 0;
    }

    应用程序也跟ubuntu的程序完全没有区别。
    只是编译的方式有点不一样,编译ubuntu的应用程序一般用交叉编译链编译就好了,这里需要编写Android.mk在android源码中编译出可执行文件,最后的BUILD_EXECUTABLE代表输出可执行文件
    Android.mk

    LOCAL_PATH := $(call my-dir)
    include $(CLEAR_VARS)
    
    LOCAL_SRC_FILES := word_count_app.c
    
    LOCAL_MODULE := word_count_app
    LOCAL_MODULE_TAGS := optional
    include $(BUILD_EXECUTABLE)

    编译的主要步骤为:1、创建软链接到development目录下 2、回到源码根目录,导入环境变量 3、选择编译的目标平台 4、编译源码
    所有步骤一定要在同一个终端窗口里面执行,使用source导入的环境变量只在本窗口有效。

    hokamyuen@hokamyuen-linux:~/android-5.0.2/development$ ln -s ./word_count /home/hokamyuen/study/android/word_count/app
    hokamyuen@hokamyuen-linux:~/android-5.0.2/development$ cd ..
    hokamyuen@hokamyuen-linux:~/android-5.0.2$ source build/envsetup.sh 
    including device/lge/hammerhead/vendorsetup.sh
    including device/lge/mako/vendorsetup.sh
    including device/samsung/manta/vendorsetup.sh
    including device/friendly-arm/tiny4412/vendorsetup.sh
    including device/moto/shamu/vendorsetup.sh
    including device/generic/mini-emulator-armv7-a-neon/vendorsetup.sh
    including device/generic/mini-emulator-mips/vendorsetup.sh
    including device/generic/mini-emulator-arm64/vendorsetup.sh
    including device/generic/mini-emulator-x86_64/vendorsetup.sh
    including device/generic/mini-emulator-x86/vendorsetup.sh
    including device/asus/grouper/vendorsetup.sh
    including device/asus/flo/vendorsetup.sh
    including device/asus/fugu/vendorsetup.sh
    including device/asus/deb/vendorsetup.sh
    including device/asus/tilapia/vendorsetup.sh
    including sdk/bash_completion/adb.bash
    hokamyuen@hokamyuen-linux:~/android-5.0.2$ lunch
    
    You're building on Linux
    
    Lunch menu... pick a combo:
         1. aosp_arm-eng
         2. aosp_arm64-eng
         3. aosp_mips-eng
         4. aosp_mips64-eng
         5. aosp_x86-eng
         6. aosp_x86_64-eng
         7. aosp_hammerhead-userdebug
         8. aosp_mako-userdebug
         9. aosp_manta-userdebug
         10. full_tiny4412-userdebug
         11. full_tiny4412-eng
         12. aosp_shamu-userdebug
         13. m_e_arm-userdebug
         14. mini_emulator_mips-userdebug
         15. mini_emulator_arm64-userdebug
         16. mini_emulator_x86_64-userdebug
         17. mini_emulator_x86-userdebug
         18. aosp_grouper-userdebug
         19. aosp_flo-userdebug
         20. full_fugu-userdebug
         21. aosp_fugu-userdebug
         22. aosp_deb-userdebug
         23. aosp_tilapia-userdebug
    
    Which would you like? [aosp_arm-eng] 11
    
    ============================================
    PLATFORM_VERSION_CODENAME=REL
    PLATFORM_VERSION=5.0.2
    TARGET_PRODUCT=full_tiny4412
    TARGET_BUILD_VARIANT=eng
    TARGET_BUILD_TYPE=release
    TARGET_BUILD_APPS=
    TARGET_ARCH=arm
    TARGET_ARCH_VARIANT=armv7-a-neon
    TARGET_CPU_VARIANT=cortex-a9
    TARGET_2ND_ARCH=
    TARGET_2ND_ARCH_VARIANT=
    TARGET_2ND_CPU_VARIANT=
    HOST_ARCH=x86_64
    HOST_OS=linux
    HOST_OS_EXTRA=Linux-4.13.0-37-generic-x86_64-with-Ubuntu-16.04-xenial
    HOST_BUILD_TYPE=release
    BUILD_ID=LRX22G
    OUT_DIR=out
    ============================================
    
    hokamyuen@hokamyuen-linux:~/android-5.0.2$ mmm development/word_count
    make: Entering directory '/home/hokamyuen/android-5.0.2'
    ============================================
    PLATFORM_VERSION_CODENAME=REL
    PLATFORM_VERSION=5.0.2
    TARGET_PRODUCT=full_tiny4412
    TARGET_BUILD_VARIANT=eng
    TARGET_BUILD_TYPE=release
    TARGET_BUILD_APPS=
    TARGET_ARCH=arm
    TARGET_ARCH_VARIANT=armv7-a-neon
    TARGET_CPU_VARIANT=cortex-a9
    TARGET_2ND_ARCH=
    TARGET_2ND_ARCH_VARIANT=
    TARGET_2ND_CPU_VARIANT=
    HOST_ARCH=x86_64
    HOST_OS=linux
    HOST_OS_EXTRA=Linux-4.13.0-37-generic-x86_64-with-Ubuntu-16.04-xenial
    HOST_BUILD_TYPE=release
    BUILD_ID=LRX22G
    OUT_DIR=out
    ============================================
    Import includes file: out/target/product/tiny4412/obj/EXECUTABLES/word_count_app_intermediates/import_includes
    target thumb C: word_count_app <= development/word_count/word_count_app.c
    target Executable: word_count_app (out/target/product/tiny4412/obj/EXECUTABLES/word_count_app_intermediates/LINKED/word_count_app)
    target Symbolic: word_count_app (out/target/product/tiny4412/symbols/system/bin/word_count_app)
    Export includes file: development/word_count/Android.mk -- out/target/product/tiny4412/obj/EXECUTABLES/word_count_app_intermediates/export_includes
    target Strip: word_count_app (out/target/product/tiny4412/obj/EXECUTABLES/word_count_app_intermediates/word_count_app)
    Install: out/target/product/tiny4412/system/bin/word_count_app
    make: Leaving directory '/home/hokamyuen/android-5.0.2'
    
    #### make completed successfully (2 seconds) ####

    可以看到,所需要的可执行文件已经输出到out/target/product/tiny4412/obj/EXECUTABLES/word_count_app_intermediates/word_count_app
    接下来对编译出来的文件进行测试,把文件上传到开发板,加载驱动,运行程序

    hokamyuen@hokamyuen-linux:~/android-5.0.2$ adb push out/target/product/tiny4412/obj/EXECUTABLES/word_count_app_intermediates/word_count_app /data/local
    * daemon not running. starting it now on port 5037 *
    * daemon started successfully *
    86 KB/s (5364 bytes in 0.060s)
    hokamyuen@hokamyuen-linux:~/android-5.0.2$ adb shell
    root@tiny4412:/ # cd /data/local 
    root@tiny4412:/data/local # insmod word_count_drv.ko                            
    root@tiny4412:/data/local # ./word_count_app 'hello world!'                    
    word count app
    word num is 2

    程序正确了输出了单词的数量,测试完成。

    3. 编写jni层代码

    刚刚的测试都是使用c语言来测试的,但是安卓上运行的主要还是用java编写的APP,然而安卓不允许java直接调用设备节点,因此需要封装一套接口给java调用,这就是jni层代码。
    ndk_word_count.cpp
    
    #include <string.h>
    #include <jni.h>
    #include <fcntl.h>
    #include <stdio.h>
    #include <sys/types.h>
    #include <sys/stat.h>
    #include <unistd.h>
    #include <stdlib.h>
    #include <android/log.h>
    
    //JNI Function: readWordCountFromDev
    //description: use to read word count from /dev/word_count
    extern "C" JNIEXPORT jint JNICALL Java_mobile_android_word_count_ndk_WordCountNDKTestMain_readWordCountFromDev(JNIEnv* env, jobject thiz)
    {
        int dev;
        int wordCount;
    
        dev = open("/dev/word_count", O_RDONLY);
    
        if(dev < 0)
        {
            __android_log_print(ANDROID_LOG_DEBUG, "readWordCountFromDev", "open /dev/word_count failed\n");
            return -1;
        }
    
        read(dev, &wordCount, 4);
    
        close(dev);
    
        return (jint)wordCount;
    }
    
    //convert jstring to char*
    char* jstring_to_pchar(JNIEnv* env, jstring str)
    {
        char* pstr = NULL;
    
        //get data length from JAVA function: String.getBytes
        jclass classString = env->FindClass("java/lang/String");//get java.lang.String class
        jstring strEncode = env->NewStringUTF("utf-8");//convert string "utf-8" to jstring class
        jmethodID mid = env->GetMethodID(classString, "getBytes", "(Ljava/lang/String;)[B");//get java.lang.String.getBytes function
        jbyteArray byteArray = (jbyteArray)(env->CallObjectMethod(str, mid, strEncode));//use String.getBytes function to convert str variable to jbyteArray
        jsize size = env->GetArrayLength(byteArray);//get data size
        jbyte* pByte = env->GetByteArrayElements(byteArray, JNI_FALSE);//convert jbyteArray to jbyte
        if(size > 0)
        {
            pstr = (char*)malloc(size);//malloc for string
            memcpy(pstr, pByte, size);//copy string from pbyte
        }
        return pstr;
    }
    
    //JNI Function: writeStringToDev
    //description: use to write string to /dev/word_count
    extern "C" JNIEXPORT void JNICALL Java_mobile_android_word_count_ndk_WordCountNDKTestMain_writeStringToDev(JNIEnv* env, jobject thiz, jstring str)
    {
        int dev;
        dev = open("/dev/word_count", O_WRONLY);
        if(dev < 0)
        {
            __android_log_print(ANDROID_LOG_DEBUG, "writeStringToDev", "open /dev/word_count failed");
            return;
        }
    
        char* pstr = jstring_to_pchar(env, str);//convert jstring to char*
        __android_log_print(ANDROID_LOG_DEBUG, "writeStringToDev", "str is %s", pstr);
        if(pstr != NULL)
        {
            write(dev, pstr, strlen(pstr));
            free(pstr);
        }
        close(dev);
    }

    这里给java提供了两个接口,c语言里面要注意函数的命名

    int mobile.android.word.count.ndk.WordCountNDKTestMain.readWordCountFromDev();
    void mobile.android.word.count.ndk.WordCountNDKTestMain.writeStringToDev(String str);
    

    这里提一下android stdio与eclipse的代码区别, 在AS中导出的函数前面要加上

    extern "C" JNIEXPORT 返回值类型 JNICALL

    不然即使编译没有报错,运行时也会报出

    Caused by: java.lang.UnsatisfiedLinkError: No implementation found

    类似的错误。
    完成代码后需要把代码添加到as工程中编译检查语法错误。
    在AS中编译不需要编写Android.mk文件,只需要把源码放到工程目录里面,并在工程的CMakeLists.txt中添加一下代码

    add_library( # Sets the name of the library.
                 ndk_word_count
    
                 # Sets the library as a shared library.
                 SHARED
    
                 # Provides a relative path to your source file(s).
                 src/main/cpp/ndk_word_count.cpp )
    target_link_libraries( # Specifies the target library.
                           ndk_word_count
    
                           # Links the target library to the log library
                           # included in the NDK.
                           ${log-lib} )

    再次进入android sdtio,重新编译工程就能在app->cpp里面看到我们刚刚在CmakeLists.txt里面添加的Library,如果编译成功,jni代码暂时就完成了。

    4. 编写APP

    最后一步就是编写简单APP来测试jni层代码了。
    
    package mobile.android.word.count.ndk;
    
    import android.support.v7.app.AppCompatActivity;
    import android.os.Bundle;
    import android.widget.EditText;
    import android.widget.TextView;
    import android.view.View;
    
    
    public class WordCountNDKTestMain extends AppCompatActivity {
        private TextView twWordCount;
        private EditText etString;
    
        static {
            System.loadLibrary("ndk_word_count");
        }
    
        @Override
        protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.activity_main);
    
            twWordCount = (TextView) findViewById(R.id.textView_wordCount);
            etString = (EditText) findViewById(R.id.inputText);
        }
    
        public void onClick_button_write(View view)
        {
            writeStringToDev(etString.getText().toString());
        }
    
        public void onClick_button_read(View view)
        {
            twWordCount.setText("单词数: " + String.valueOf(readWordCountFromDev()));
        }
    
        public native int readWordCountFromDev();
        public native void writeStringToDev(String str);
    }

    其中

    static {
            System.loadLibrary("ndk_word_count");
        }
    public native int readWordCountFromDev();
    public native void writeStringToDev(String str);

    表示从ndk_word_count库中加载接口,并声明其提供的接口。
    编写完响应函数后绘制出ui,ui主要包含4个组件,两个button,一个TextView,一个EditText。
    接着修改activity_main.xml中的

    tools:context=".WordCountNDKTestMain">

    并给两个按键填入对应的响应函数。到此,APP源码也编写完成了。
    最后看APP效果,android5.0以上设备节点默认为600,APP无权限访问,所以要给设备节点加上读写的权限

    root@tiny4412:/ # chmod 666 /dev/word_count

    这里写图片描述

    展开全文
  • 原因:app下载项目中的word文档后打不开, freemarker根据xml模板生成的word的文件类型是Microsoft Office Word 97 - 2003 文档的。  自己创建的word在手机上是可以打开的。  模板本身就是XML格式文件,freemarker...

    原因:app下载项目中的word文档后打不开, freemarker根据xml模板生成的word的文件类型是Microsoft Office Word 97 - 2003 文档的。 
    自己创建的word在手机上是可以打开的。 
    模板本身就是XML格式文件,freemarker使用的方式是用类型字符串替换的方式,替换掉XML里面的字符然后生成按相同格式生成文件,然后后缀名定为.doc而已。 
    由于XML文件的头部有<?mso-application progid="Word.Document"?>这样的字符串,所以电脑上的office word读到这个信息后知道按转换xml里标签转换成word的格式。 
    但手机上的word软件则没有这个功能,所以就打开失败。

    处理方法:见

    maven中引入

    <dependency>
            <groupId>com.hynnet</groupId>
            <artifactId>jacob</artifactId>
            <version>1.18</version>
        </dependency>

    下载jacob-1.18.jar  【完整下载地址:https://download.csdn.net/download/jason_996/10606395

    https://download.csdn.net/download/forlovehuan/10587731

    import com.jacob.activeX.ActiveXComponent;
    import com.jacob.com.ComThread;
    import com.jacob.com.Dispatch;
    import com.jacob.com.Variant;
    
    public static String createNewWord() {
        ActiveXComponent _app = new ActiveXComponent("Word.Application");
                    _app.setProperty("Visible", Variant.VT_FALSE);
         Dispatch documents = _app.getProperty("Documents").toDispatch();
         // 打开FreeMarker生成的Word文档
        Dispatch doc = Dispatch.call(documents, "Open","原文件路径/oldname.doc", Variant.VT_FALSE, Variant.VT_TRUE).toDispatch();
                   // 另存为新的Word文档
                    Dispatch.call(doc, "SaveAs", "新文件路径/name.doc", Variant.VT_FALSE, Variant.VT_TRUE);
    
                    Dispatch.call(doc, "Close", Variant.VT_FALSE);
                    _app.invoke("Quit", new Variant[] {});
                    ComThread.Release();    
    }

    运行时报错

     java.lang.UnsatisfiedLinkError: no jacob-1.18-x64 in java.library.path

    https://download.csdn.net/download/forlovehuan/10586055

    放置在jdk/bin目录下,重新启动项目即可(jdk1.8.0_171放置在jdk/jre/bin )。

    项目发布在服务器时,报错

     Caused by: java.lang.NoClassDefFoundError: Could not initialize class com.jacob.
    activeX.ActiveXComponent
    • 或者这个错误:
    • com.jacob.com.ComFailException: Can't co-create object解决办法(同事电脑上装office就可以,我自己装的是wps就不行)

    确定以上两个没有问题,需在服务器安装office,问题解决

    这个方案只支持windows,很遗憾不支持linux(服务器是linux,我只能把word 最后生成pdf让手机app来查看的),还有一个方法:用freemarker生成docx(我用的是2013的模板),问题完美解决。

    展开全文
  • 02/18/2016 16:08:03.09 w3wp.exe (0x16AC) 0x08A4 Excel Web App Excel Calculation Services 8jg2 Medium ResourceManager.PerformCleanup: Disk Manager: CurrentSize=28685. 11c5f189-5b0c-0002-b978-a3d3...
  • 不做不知道,一做吓一跳,在进行word转PDF遇到的问题的丰富性、复杂性、随机性……会让每个刚接触PDF格式转换的菜鸟都感到吃惊,如果让我来出主意的话,其实大家普遍都在用的word转PDF APP也并不是最好的选择哦,小...
  • 工作后会越来越多的接触并使用各种格式的文档,如PDF、Word、PPT、Excel等等。由于这些文档使用环境的不同,有时需要将它们进行相互转换,比如将PDF转换成Word、将Excel转换成PDF等等。其中大家遇到最多的应该就是...
  • 安卓客户端中集成了腾讯tbs,用来查看word、pdf等文件。但是首次安装app后,打开文档时,总是无法打开。 具体的问题点在调用TbsReaderView的preOpen接口时,返回false,导致无法继续打开文件。 使用的tbs版本为:tbs...
  • ve defined a custom handlebars helper in my app called <code>percent</code>. The file currently lives in <code>app/helpers/percent.js</code></p> <p>It's a quicky and is defined as follows (pardon ...
  • 微软提供了一个在线预览的页面,...。。 这个PC端可以用,app内嵌h5页面打开这个地址报错,指向空页面; 移动端 H5 有什么好的方式可以直接预览 word、Excel?
  • ActiveXComponent app = new ActiveXComponent("Word.Application");语句时报错 错是由于运行时需要加载对应的类不成功,查看网上的资料发现是缺少了jacob-1.18-M2-x64.dll(64位) 将其放到了jdk/bin文件夹下,运行...
  • <div><p>Hello Zulip team, <p>This is a critical bug I think so, it'...<p>This bug just exist in ios app only. <p>Thanks.</p><p>该提问来源于开源项目:zulip/zulip-mobile</p></div>
  • 测试报告word版,无水印,结构清晰,内容完善(模板)
  • <div><p>fixes issue #280, on clicking a word, the cloud will be updated with the selected word's cloud. <p>I have: - [x] There is a corresponding issue for this pull request. - [x] Mentioned the ...
  • 如何解决word中出现的问题事件APPCRASH_百度知道 1个回答 - 最新回答: 2011年12月02日 - 106人觉得有用 最佳答案: 打开运行,输入%appdata%\microsoft\templates回车,再删掉normal.dot就可以了。不会影响到你...
  • 最近项目碰到需要隐藏office web app的打印和在word中打开等功能。没有屏蔽前如下图: 解决方法 1、 这里采用jquery来隐藏,下载jquery最新脚本库jquery-1.9.0.min.js(下载地址 http://jquery.com/ ...
  • The word mark is supposed to move up once the keyboard show sup. <p><img alt="home_view_1502387735822" src="https://img-blog.csdnimg.cn/img_convert/1982e29c4c950032deb67b01def68ed3.png" /></p><p>该...
  • 有的app可能会有这样的需求,需要在app中打开本地的word,excel等文档进行查看,我们在面对这样的需求的时候可能会一头雾水,不知道怎么来实现,这里给大家提供一种解决方案,那就是使用腾讯的浏览服务TBS(Tencent ...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 4,895
精华内容 1,958
关键字:

appword