iis服务器助手广告广告
返回顶部
首页 > 资讯 > 精选 >Java解析word怎么获取文档中图片位置
  • 156
分享到

Java解析word怎么获取文档中图片位置

2023-05-30 16:05:17 156人浏览 安东尼
摘要

小编给大家分享一下Java解析Word怎么获取文档中图片位置,希望大家阅读完这篇文章之后都有所收获,下面让我们一起去探讨吧!前言(背景介绍): Apache POI是Apache基金会下一个开源的项目,用来处理office系列的文档,能够创

小编给大家分享一下Java解析Word怎么获取文档中图片位置,希望大家阅读完这篇文章之后都有所收获,下面让我们一起去探讨吧!

前言(背景介绍):

Apache POI是Apache基金会下一个开源的项目,用来处理office系列的文档,能够创建和解析word、excel、ppt格式的文档。

其中对word文档的处理有两个技术,分别是HWPF(.doc)和XWPF(.docx)。如果你对这两个技术熟悉的话,就应该能明白使用java解析word文档的痛楚所在。

其中两个最大的问题在于:

第一是这两个类并没有统一的父类和接口(隔壁的XSSF和HSSF投过来鄙视的眼光),所以没法进行同一格式的接口式编程

第二是官方api中并没有文档中图片相对位置的接口,这就导致了虽然你能获得文档中的所有图片,但是你并不能知道这些图片是在哪里,将来要展示图片就没法插入到正确的位置。

对于第一点,我是没什么办法,可以研究下其他相关技术,比如jacob,doc4j等看看有没有其他的解决方案,不过doc4j这货貌似只能处理2007文档(.docx)。

对于第二点,本文将给出笔者的解决方案,实际上,这也是我写本文的目的所在。

注意:简单求快的同学看第二章和第三章就行了;

一、预备知识

1.word文档的两种格式对应两种不同的存储方式

众所周知,word文档有两种存储格式:doc和docx

doc:习惯上称为Word2003,使用二进制储存数据;这个不是我们今天讨论的重点.

docx:word2007,使用xml来存储数据和格式.

可能你会问了,明明是docx结尾的文档,怎么成了xml格式了?

很简单:你随便选择一个docx文件,右键使用压缩工具打开,就能得到一个这样的目录结构:

Java解析word怎么获取文档中图片位置

所以你以为docx是一个完整的文档,其实它只是一个压缩文件。(docx:?_?)

2.Word文档中xml的定义格式:

从前面我们知道了docx文档使用压缩文件也就是xml来描述数据,那么word文档中的数据具体是怎么定义的呢?

出于篇幅的关系,这里不会详细地描述整个压缩的文档,这里只简单介绍下两个文件/文件夹:

一是word目录下的documen.xml文件,这个就是整个文档内容的定义;

二是word目录下的media文件夹,看名字也能猜出来这个文件夹里面是文档中的多媒体内容:

Java解析word怎么获取文档中图片位置Java解析word怎么获取文档中图片位置

图3:word/document.xml(定义文档内容)                                   

图4:word/media文件夹下的内容

以下是document.xml文档的部分关键内容:

A:document整体结构定义:

<w:document mc:ignorable="w14 w15 wp14" xmlns:m="Http://schemas.openxmlfORMats.org/officeDocument/2006/math" xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" xmlns:o="urn:schemas-microsoft-com:office:office" xmlns:r="http://schemas.openxmlformats.org/officeDocument/2006/relationships" xmlns:v="urn:schemas-microsoft-com:vml" xmlns:w="http://schemas.openxmlformats.org/wordprocessingml/2006/main" xmlns:w10="urn:schemas-microsoft-com:office:word" xmlns:w14="http://schemas.microsoft.com/office/word/2010/wordml" xmlns:w15="http://schemas.microsoft.com/office/word/2012/wordml" xmlns:wne="http://schemas.microsoft.com/office/word/2006/wordml" xmlns:wp="http://schemas.openxmlformats.org/drawingml/2006/wordprocessingDrawing" xmlns:wp14="http://schemas.microsoft.com/office/word/2010/wordprocessingDrawing" xmlns:wpc="http://schemas.microsoft.com/office/word/2010/wordprocessingcanvas" xmlns:wpg="http://schemas.microsoft.com/office/word/2010/wordprocessingGroup" xmlns:wpi="http://schemas.microsoft.com/office/word/2010/wordprocessingInk" xmlns:wps="http://schemas.microsoft.com/office/word/2010/wordprocessingShape" xmlns:wpscustomdata="http://www.wps.cn/officeDocument/2013/wpsCustomData"> <w:body> <w:p> <w:ppr> <w:pstyle w:val="2"> </w:pstyle> <w:keepnext w:val="0"> </w:keepnext> <w:keeplines w:val="0"> </w:keeplines> <w:widowcontrol> </w:widowcontrol> <w:suppresslinenumbers w:val="0"> </w:suppresslinenumbers> <w:pbdr>  <w:top w:color="auto" w:space="0" w:sz="0" w:val="none">  </w:top>  <w:left w:color="auto" w:space="0" w:sz="0" w:val="none">  </w:left>  <w:bottom w:color="auto" w:space="0" w:sz="0" w:val="none">  </w:bottom>  <w:right w:color="auto" w:space="0" w:sz="0" w:val="none">  </w:right> </w:pbdr>

B:文档段落内容:

<w:p> <w:ppr> <w:pstyle w:val="2"> </w:pstyle> <w:keepnext w:val="0"> </w:keepnext> <w:keeplines w:val="0"> </w:keeplines> <w:widowcontrol> </w:widowcontrol> <w:suppresslinenumbers w:val="0"> </w:suppresslinenumbers> <w:pbdr>  <w:top w:color="auto" w:space="0" w:sz="0" w:val="none">  </w:top>  <w:left w:color="auto" w:space="0" w:sz="0" w:val="none">  </w:left>  <w:bottom w:color="auto" w:space="0" w:sz="0" w:val="none">  </w:bottom>  <w:right w:color="auto" w:space="0" w:sz="0" w:val="none">  </w:right> </w:pbdr> <w:shd w:fill="FAFAFA" w:val="clear"> </w:shd> <w:spacing w:after="150" w:afterautospacing="0" w:before="150" w:beforeautospacing="0" w:line="378" w:linerule="atLeast"> </w:spacing> <w:ind w:firstline="0" w:left="0" w:right="0"> </w:ind> <w:rpr>  <w:rfonts w:ascii="Verdana" w:cs="Verdana" w:hansi="Verdana" w:hint="default">  </w:rfonts>  <w:i w:val="0">  </w:i>  <w:caps w:val="0">  </w:caps>  <w:color w:val="404040">  </w:color>  <w:spacing w:val="0">  </w:spacing>  <w:sz w:val="21">  </w:sz>  <w:szcs w:val="21">  </w:szcs> </w:rpr> </w:ppr> <w:r> <w:rpr>  <w:rfonts w:ascii="Verdana" w:cs="Verdana" w:hansi="Verdana" w:hint="default">  </w:rfonts>  <w:i w:val="0">  </w:i>  <w:caps w:val="0">  </w:caps>  <w:color w:val="404040">  </w:color>  <w:spacing w:val="0">  </w:spacing>  <w:sz w:val="21">  </w:sz>  <w:szcs w:val="21">  </w:szcs>  <w:bdr w:color="auto" w:space="0" w:sz="0" w:val="none">  </w:bdr>  <w:shd w:fill="FAFAFA" w:val="clear">  </w:shd> </w:rpr> <w:t>  作者: Brian Dear </w:t> </w:r> </w:p>

C:图片内容定义:

<w:r> <w:rpr>  <w:rfonts w:ascii="Verdana" w:cs="Verdana" w:hansi="Verdana" w:hint="default">  </w:rfonts>  <w:i w:val="0">  </w:i>  <w:caps w:val="0">  </w:caps>  <w:color w:val="404040">  </w:color>  <w:spacing w:val="0">  </w:spacing>  <w:sz w:val="21">  </w:sz>  <w:szcs w:val="21">  </w:szcs>  <w:bdr w:color="auto" w:space="0" w:sz="0" w:val="none">  </w:bdr>  <w:shd w:fill="FAFAFA" w:val="clear">  </w:shd> </w:rpr> <w:drawing>  <wp:inline distb="0" distl="114300" distr="114300" distt="0">  <wp:extent cx="5543550" cy="5543550">  </wp:extent>  <wp:effectextent b="0" l="0" r="0" t="0">  </wp:effectextent>  <wp:docpr descr="IMG_256" id="1" name="Picture 1">  </wp:docpr>  <wp:cnvgraphicframepr>  <a:graphicframelocks nochangeaspect="1" xmlns:a="http://schemas.openxmlformats.org/drawingml/2006/main">  </a:graphicframelocks>  </wp:cnvgraphicframepr>  <a:graphic xmlns:a="http://schemas.openxmlformats.org/drawingml/2006/main">  <a:graphicdata uri="http://schemas.openxmlformats.org/drawingml/2006/picture">  <pic:pic xmlns:pic="http://schemas.openxmlformats.org/drawingml/2006/picture">   <pic:nvpicpr>   <pic:cnvpr descr="IMG_256" id="1" name="Picture 1">   </pic:cnvpr>   <pic:cnvpicpr>   <a:piclocks nochangeaspect="1">   </a:piclocks>   </pic:cnvpicpr>   </pic:nvpicpr>   <pic:blipfill>   <a:blip r:embed="rId4">   </a:blip>   <a:stretch>   <a:fillrect>   </a:fillrect>   </a:stretch>   </pic:blipfill>   <pic:sppr>   <a:xfrm>   <a:off x="0" y="0">   </a:off>   <a:ext cx="5543550" cy="5543550">   </a:ext>   </a:xfrm>   <a:prstgeom prst="rect">   <a:avlst>   </a:avlst>   </a:prstgeom>   <a:nofill>   </a:nofill>   <a:ln w="9525">   <a:nofill>   </a:nofill>   </a:ln>   </pic:sppr>  </pic:pic>  </a:graphicdata>  </a:graphic>  </wp:inline> </w:drawing> </w:r>

有兴趣的童鞋可以看一下上面三段xml代码,我这里直接给结论了:

word文档shema文件:xmlns:w="http://schemas.openxmlformats.org/wordprocessingml/2006/main"

文档根节点:<w:document> 定义了整个文档的开始

<w:body>是document的子节点,文档的主体内容

<w:p>body子节点,一个段落,就是word文档中的段落

<w:r>P元素的子节点,一个Run定义了段落中具有相同格式的一段内容

<w:t>Run元素节点的子节点,就是文档的内容.

<w:drawing> run元素的子节点,定义了一张图片:

<w:inline> drawing子节点,具体应用也没有深入研究

<a:graphic> 定义图片内容

<pic:blipfill>这个是graphic文档的子节点,定义了图片内容的索引,具体来说,poi能根据这个名称拿到图片所对应的资源,而获取文档图片位置的关键也就在这里

Java解析word怎么获取文档中图片位置

总体看来:XWPF解析docx文档就是做了xml文档的解析,将所有的节点保存下来,然后转换成更加好用的属性,提供API出来供用户使用.

所以我们就能用POI提供给我们的接口拿到文档内容,自己去解析文档中的数据,就能获取到图片是在哪一个段落里了,当然你也可以得知图片是位于哪一个Run元素的后面.

二、实现

package com.szdfhx.reportStatistic.util;import com.microsoft.schemas.vml.CTShape;import org.apache.poi.xwpf.usermodel.XWPFParagraph;import org.apache.poi.xwpf.usermodel.XWPFPictureData;import org.apache.poi.xwpf.usermodel.XWPFRun;import org.apache.xmlbeans.XmlCursor;import org.apache.xmlbeans.XmlObject;import org.openxmlformats.schemas.drawingml.x2006.main.CTGraphicalObject;import org.openxmlformats.schemas.drawingml.x2006.picture.CTPicture;import org.openxmlformats.schemas.drawingml.x2006.wordprocessingDrawing.CTInline;import org.openxmlformats.schemas.wordprocessingml.x2006.main.CTDrawing;import org.openxmlformats.schemas.wordprocessingml.x2006.main.CTObject;import org.openxmlformats.schemas.wordprocessingml.x2006.main.CTR;import java.util.ArrayList;import java.util.List;import java.util.Map;public class XWPFUtils { //获取某一个段落中的所有图片索引 public static List<String> readImageInParagraph(XWPFParagraph paragraph) { //图片索引List List<String> imageBundleList = new ArrayList<String>(); //段落中所有XWPFRun List<XWPFRun> runList = paragraph.getRuns(); for (XWPFRun run : runList) { //XWPFRun是POI对xml元素解析后生成的自己的属性,无法通过xml解析,需要先转化成CTR CTR ctr = run.getCTR(); //对子元素进行遍历 XmlCursor c = ctr.newCursor(); //这个就是拿到所有的子元素: c.selectPath("./*"); while (c.toNextSelection()) { XmlObject o = c.getObject(); //如果子元素是<w:drawing>这样的形式,使用CTDrawing保存图片 if (o instanceof CTDrawing) {  CTDrawing drawing = (CTDrawing) o;  CTInline[] ctInlines = drawing.getInlineArray();  for (CTInline ctInline : ctInlines) {  CTGraphicalObject graphic = ctInline.getGraphic();  //  XmlCursor cursor = graphic.getGraphicData().newCursor();  cursor.selectPath("./*");  while (cursor.toNextSelection()) {  XmlObject xmlObject = cursor.getObject();                // 如果子元素是<pic:pic>这样的形式  if (xmlObject instanceof CTPicture) {  org.openxmlformats.schemas.drawingml.x2006.picture.CTPicture picture = (org.openxmlformats.schemas.drawingml.x2006.picture.CTPicture) xmlObject;  //拿到元素的属性  imageBundleList.add(picture.getBlipFill().getBlip().getEmbed());  }  }  } } //使用CTObject保存图片          //<w:object>形式 if (o instanceof CTObject) {  CTObject object = (CTObject) o;  System.out.println(object);  XmlCursor w = object.newCursor();  w.selectPath("./*");  while (w.toNextSelection()) {  XmlObject xmlObject = w.getObject();  if (xmlObject instanceof CTShape) {  CTShape shape = (CTShape) xmlObject;  imageBundleList.add(shape.getImagedataArray()[0].getId2());  }  } } } } return imageBundleList; }}

首先要提出来是XWPF对xml元素的封装:

<w:document> 对应XWPFDocument类

<w:run>对应XWPFRun类

基本上只对应到Run这一层,因为run的子元素有很多,所以没有再往下面的层次封装和定义了,

所以我们使用API只能拿到所有的XWPFRun对象转成它的xml的定义:CTR对象。最后利用CTR去读取和解析的Run元素中的内容,获取图片的索引。

其次要谈的则是整个XML元素的定义:

我们可以看到POI使用的是Apache下的xmlbeans这个技术解析的XML,相关的技术不做深谈,关键要明白两点:

xml文档中的所有元素经过xmlbean是封装后都继承了一个XMLObject的接口,所以可以用这个类来接收获取到的子元素;

元素遍历是通过XmlCursor来做的,具体获取子元素是根据XmlCursor对象的selectPath属性来控制,当selectPath为"./*"时就定义为遍历子元素;

所以写成了如下的代码:能遍历当前元素的子元素,并且检验子元素的类型:

CTR ctr = run.getCTR();//对子元素进行遍历XmlCursor c = ctr.newCursor();//这个就是拿到所有的子元素:c.selectPath("./*");while (c.toNextSelection()) { XmlObject o = c.getObject();//如果子元素是<w:drawing>这样的形式,使用CTDrawing保存图片if (o instanceof CTDrawing) {CTDrawing drawing = (CTDrawing) o;

最后你可能会有疑问,不是说<w:drawing>这个元素定义了一张图片吗?

那么

if (o instanceof CTObject) {CTObject object = (CTObject) o;...}

这个第二个判断条件是用来干嘛的?

聪明的你应该已经猜到了

没错!docx文档中的xml定义图片的方式除了<w:drawing>这一种之外,还可以运用<w:object>元素去定义,

为什么只有这两种?

因为我只使用第一种方式解析,发现有些图片丢失了,于是发现了第二种方式.......也许不止两种?我也不知道,反正对于目前的我来说已经没有问题了.

或许聪明的你在实践中还遇到了更多种情况?

那么运用上面提到的xml解析方式,相信你也能正确读取,得到自己想要的索引值.

再拓宽一点,如果POI还有其他没有提供的API,我们是不是也能通过XML解析的技术自己实现呢?这个就需要我们在实践中去探索了,相信时间会给我们答案

好了,现在我们拿到了索引值,那么如何去拿到图片资源呢?

POI提供了现成的方法:

XWPFDocument类中有getPictureDataByID(String picture);

方法可以拿到XWPFPictrueDate对象,这个就是图片的资源了.

具体的操作可以参阅相关的博文和API,这里就不详细介绍了.

三、测试:

使用Junit4测试的代码:

package com.szdfhx.reportStatistic.util;import org.apache.commons.collections.CollectionUtils;import org.apache.commons.lang.StringUtils;import org.apache.poi.xwpf.usermodel.XWPFDocument;import org.apache.poi.xwpf.usermodel.XWPFParagraph;import org.apache.poi.xwpf.usermodel.XWPFPictureData;import org.junit.Test;import java.io.FileInputStream;import java.io.IOException;import java.io.InputStream;import java.util.Collections;import java.util.List;import static org.junit.Assert.*;public class XWPFUtilsTest { @Test public void readImageInParagraph() throws IOException { InputStream in = new FileInputStream("D:\\Document\\我的博客\\Java解析word,获取文档中图片位置\\示例.docx"); XWPFDocument xwpfDocument = new XWPFDocument(in); List<XWPFParagraph> paragraphList = xwpfDocument.getParagraphs(); System.out.println("图片的索引\t|图片名称\t|图片上一段文字的内容\t"); System.out.pringln("------------------------------------------"); for(int i = 0;i < paragraphList.size();i++){ List<String> imageBundleList = XWPFUtils.readImageInParagraph(paragraphList.get(i)); if(CollectionUtils.isNotEmpty(imageBundleList)){ for(String pictureId:imageBundleList){  XWPFPictureData pictureData = xwpfDocument.getPictureDataByID(pictureId);  String imageName = pictureData.getFileName();  String lastParagraphText = paragraphList.get(i-1).getParagraphText();  System.out.println(pictureId +"\t|" + imageName + "\t|" + lastParagraphText); } } } }}

展示结果:

Java解析word怎么获取文档中图片位置

这里使用图片名称指代表明我拿到了对应的资源,实际上 如果你对前文的内容还熟悉的话,会发现图片的名称实际上就是word/media文件夹下的所有图片的全名称。

在对应的XWPFPictureData对象中,图像的二进制数据可以通过getData()属性来拿到,这样你就可以保存到数据库或者是你本地的文件夹中了!

Java可以用来干什么

Java主要应用于:1. web开发;2. Android开发;3. 客户端开发;4. 网页开发;5. 企业级应用开发;6. Java大数据开发;7.游戏开发等。

看完了这篇文章,相信你对“Java解析word怎么获取文档中图片位置”有了一定的了解,如果想了解更多相关知识,欢迎关注编程网精选频道,感谢各位的阅读!

--结束END--

本文标题: Java解析word怎么获取文档中图片位置

本文链接: https://www.lsjlt.com/news/219871.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • Java解析word怎么获取文档中图片位置
    小编给大家分享一下Java解析word怎么获取文档中图片位置,希望大家阅读完这篇文章之后都有所收获,下面让我们一起去探讨吧!前言(背景介绍): Apache POI是Apache基金会下一个开源的项目,用来处理office系列的文档,能够创...
    99+
    2023-05-30
  • word文档图片不能随意移动位置怎么解决
    这篇文章主要介绍“word文档图片不能随意移动位置怎么解决”,在日常操作中,相信很多人在word文档图片不能随意移动位置怎么解决问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”word文档图片不能随意移动位置怎...
    99+
    2023-07-01
  • 通过Java 程序获取Word中指定图片的坐标位置
    之前给大家介绍过Java解析word,获取文档中图片位置的方法,感兴趣的朋友点击查看下,今天给大家介绍如何通过Java 程序获取Word中指定图片的坐标位置,感兴趣的朋友一起看看吧!...
    99+
    2024-04-02
  • 图片怎么转换成word文档
    这篇文章主要介绍“图片怎么转换成word文档”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“图片怎么转换成word文档”文章能帮助大家解决问题。图片转换成word文档教程:首先下载一个wps并打开。打...
    99+
    2023-07-02
  • Word文档怎么轻松处理图片
    这篇文章给大家分享的是有关Word文档怎么轻松处理图片的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。一:图片原始尺寸还原我们在Word文档插入图片时,Word会自动将图片进行缩小,以适应Word排版。插入图片,在...
    99+
    2023-06-04
  • Java获取Excel中图片所在的行和列坐标位置
    目录前言获取图片所在行、列位置前言 本文以Java代码示例展示如何来获取Excel工作表中图片的坐标位置。这里的坐标位置是指图片左上角顶点所在的单元格行和列位置,横坐标即顶点所在的第...
    99+
    2022-11-13
    Java获取Excel中图片所在行坐标位置 Java获取Excel中图片所在列坐标位置
  • C#怎么实现获取Excel中图片所在坐标位置
    本文小编为大家详细介绍“C#怎么实现获取Excel中图片所在坐标位置”,内容详细,步骤清晰,细节处理妥当,希望这篇“C#怎么实现获取Excel中图片所在坐标位置”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。【程序...
    99+
    2023-06-30
  • word文档中图片显示不出来如何解决
    要解决Word文档中图片无法显示的问题,可以尝试以下几种方法:1. 检查图片路径:确保图片的路径是正确的,如果图片被移动或删除,Wo...
    99+
    2023-10-07
    word
  • Java怎么设置Word文档页边距
    本篇内容主要讲解“Java怎么设置Word文档页边距”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“Java怎么设置Word文档页边距”吧!页边距是指页面的边线到文字的距离。通常可在页边距内部的可...
    99+
    2023-07-05
  • Java getResource()怎么获取class文件目录位置
    今天小编给大家分享一下Java getResource()怎么获取class文件目录位置的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我...
    99+
    2023-07-04
  • C#实现获取Excel中图片所在坐标位置
    目录程序环境获取图片所在行、列位置实现代码C#vb.net本文以C#和vb.net代码示例展示如何来获取Excel工作表中图片的坐标位置。这里的坐标位置是指图片左上角顶点所在的单元格...
    99+
    2024-04-02
  • Python读取HTML中的canvas并且以图片形式存入Word文档
    目录前言创建Word文档并插入插入到已存在的Word文档指定的位置前言 朋友提问: 创建Word文档并插入 市面上有很多图表绘制库,例如echarts和highcharts等等。对...
    99+
    2024-04-02
  • 如何利用Java读取Word表格中文本和图片
    这篇文章主要介绍“如何利用Java读取Word表格中文本和图片”,在日常操作中,相信很多人在如何利用Java读取Word表格中文本和图片问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”如何利用Java读取Wor...
    99+
    2023-06-20
  • C#怎么设置、删除、读取Word文档背景
    这篇文章主要讲解了“C#怎么设置、删除、读取Word文档背景”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“C#怎么设置、删除、读取Word文档背景”吧!Spire.Cloud.Word.Sd...
    99+
    2023-06-03
  • HTML中怎么设置图片位置
    今天就跟大家聊聊有关HTML中怎么设置图片位置,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。html有什么特点1、简易性:超级文本标记语言版本升级采用超集方式,从而更加灵活方便,适合...
    99+
    2023-06-14
  • PHP中怎么获取远程图片
    PHP中怎么获取远程图片,相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。PHP获取远程图片代码示例:function gethttpimage($url){  ...
    99+
    2023-06-17
  • css中图片位置怎么调
    css 中调整图片位置的方法有:1. 直接法:使用 margin、padding 和 float 设置图片的外边距、内边距和浮动;2. 定位法:使用 position、left、righ...
    99+
    2024-04-26
    css
  • html5中怎么获取当前定位位置
    今天就跟大家聊聊有关html5中怎么获取当前定位位置,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。代码如下:navigator.geolocatio...
    99+
    2024-04-02
  • C#中怎么获取鼠标位置
    本篇文章给大家分享的是有关C#中怎么获取鼠标位置,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。这里将介绍C#鼠标位置相关获取程序代码,包括从图片的划分,左右边框的确定,鼠标移动...
    99+
    2023-06-17
  • FineReport中怎么获取地址位置
    这篇文章将为大家详细讲解有关FineReport中怎么获取地址位置,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。FineReport中获取的地理位置是经纬度,如果需要确定其具体位置的话,还需...
    99+
    2023-06-04
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作